Changeset 494 in SHVCSoftware for trunk/source/Lib/TLibDecoder


Ignore:
Timestamp:
16 Nov 2013, 22:09:25 (11 years ago)
Author:
seregin
Message:

reintegrate branch SHM-4.0-dev

Location:
trunk
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/source

  • trunk/source/Lib/TLibDecoder/TDecCAVLC.cpp

    r442 r494  
    187187  assert(uiCode <= 63);
    188188  pcPPS->setPPSId (uiCode);
    189  
     189
    190190  READ_UVLC( uiCode, "pps_seq_parameter_set_id");
    191191  assert(uiCode <= 15);
    192192  pcPPS->setSPSId (uiCode);
    193  
     193
    194194  READ_FLAG( uiCode, "dependent_slice_segments_enabled_flag"    );    pcPPS->setDependentSliceSegmentsEnabledFlag   ( uiCode == 1 );
    195195  READ_FLAG( uiCode, "output_flag_present_flag" );                    pcPPS->setOutputFlagPresentFlag( uiCode==1 );
     
    293293
    294294#if IL_SL_SIGNALLING_N0371
    295   pcPPS->setPPS( pcPPS->getLayerId(), pcPPS ); 
     295  pcPPS->setPPS( pcPPS->getLayerId(), pcPPS );
    296296#endif
    297297
     
    301301    pcPPS->getScalingList()->setLayerId( pcPPS->getLayerId() );
    302302
    303     if( pcPPS->getLayerId() > 0 ) 
     303    if( pcPPS->getLayerId() > 0 )
    304304    {
    305305      READ_FLAG( uiCode, "pps_pred_scaling_list_flag" );           pcPPS->setPredScalingListFlag( uiCode ? true : false );
    306306      pcPPS->getScalingList()->setPredScalingListFlag( pcPPS->getPredScalingListFlag() );
    307      
     307
    308308      if( pcPPS->getPredScalingListFlag() )
    309309      {
     
    319319        }
    320320
    321         // It is a requirement of bitstream conformance that, when a PPS with nuh_layer_id equal to nuhLayerIdA is active for a layer with nuh_layer_id equal to nuhLayerIdB and 
     321        // It is a requirement of bitstream conformance that, when a PPS with nuh_layer_id equal to nuhLayerIdA is active for a layer with nuh_layer_id equal to nuhLayerIdB and
    322322        // pps_infer_scaling_list_flag in the PPS is equal to 1, pps_infer_scaling_list_flag shall be equal to 0 for the PPS that is active for the layer with nuh_layer_id equal to pps_scaling_list_ref_layer_id
    323323        assert( pcPPS->getPPS( pcPPS->getScalingListRefLayerId() )->getPredScalingListFlag() == false );
    324324
    325         // It is a requirement of bitstream conformance that, when a PPS with nuh_layer_id equal to nuhLayerIdA is active for a layer with nuh_layer_id equal to nuhLayerIdB, 
     325        // It is a requirement of bitstream conformance that, when a PPS with nuh_layer_id equal to nuhLayerIdA is active for a layer with nuh_layer_id equal to nuhLayerIdB,
    326326        // the layer with nuh_layer_id equal to pps_scaling_list_ref_layer_id shall be a direct or indirect reference layer of the layer with nuh_layer_id equal to nuhLayerIdB
    327327        assert( pcPPS->getSPS()->getVPS()->getScalingListLayerDependency( pcPPS->getLayerId(), pcPPS->getScalingListRefLayerId() ) == true );
     
    450450  {
    451451    READ_FLAG(   uiCode, "tiles_fixed_structure_flag");               pcVUI->setTilesFixedStructureFlag(uiCode);
    452 #if M0464_TILE_BOUNDARY_ALIGNED_FLAG
    453     if ( pcSPS->getLayerId() > 0 )
    454     {
    455       READ_FLAG( uiCode, "tile_boundaries_aligned_flag" ); pcVUI->setTileBoundariesAlignedFlag( uiCode == 1 );
    456     }
    457 #endif
    458452    READ_FLAG(   uiCode, "motion_vectors_over_pic_boundaries_flag");  pcVUI->setMotionVectorsOverPicBoundariesFlag(uiCode);
    459453    READ_FLAG(   uiCode, "restricted_ref_pic_lists_flag");            pcVUI->setRestrictedRefPicListsFlag(uiCode);
     
    542536}
    543537
    544 #if SPS_SUB_LAYER_INFO
     538#if SVC_EXTENSION
    545539Void TDecCavlc::parseSPS(TComSPS* pcSPS, ParameterSetManagerDecoder *parameterSetManager)
    546540#else
     
    554548  UInt  uiCode;
    555549  READ_CODE( 4,  uiCode, "sps_video_parameter_set_id");          pcSPS->setVPSId        ( uiCode );
    556 #if SPS_SUB_LAYER_INFO
     550#if SVC_EXTENSION
    557551  if(pcSPS->getLayerId() == 0)
    558552  {
     
    560554    READ_CODE( 3,  uiCode, "sps_max_sub_layers_minus1" );          pcSPS->setMaxTLayers   ( uiCode+1 );
    561555    assert(uiCode <= 6);
    562  
     556
    563557    READ_FLAG( uiCode, "sps_temporal_id_nesting_flag" );               pcSPS->setTemporalIdNestingFlag ( uiCode > 0 ? true : false );
    564 #if SPS_SUB_LAYER_INFO
     558#if SVC_EXTENSION
    565559  }
    566560  else
     
    569563    pcSPS->setTemporalIdNestingFlag( parameterSetManager->getPrefetchedVPS(pcSPS->getVPSId())->getTemporalNestingFlag() );
    570564  }
    571 #endif
    572565#if IL_SL_SIGNALLING_N0371
    573566  pcSPS->setVPS( parameterSetManager->getPrefetchedVPS(pcSPS->getVPSId()) );
    574567  pcSPS->setSPS( pcSPS->getLayerId(), pcSPS );
    575568#endif
     569#endif
    576570  if ( pcSPS->getMaxTLayers() == 1 )
    577571  {
    578572    // sps_temporal_id_nesting_flag must be 1 when sps_max_sub_layers_minus1 is 0
    579 #if SPS_SUB_LAYER_INFO
     573#if SVC_EXTENSION
    580574    assert( pcSPS->getTemporalIdNestingFlag() == true );
    581575#else
     
    598592  if( pcSPS->getLayerId() > 0 )
    599593  {
    600     READ_FLAG( uiCode, "update_rep_format_flag" );                 
     594    READ_FLAG( uiCode, "update_rep_format_flag" );
    601595    pcSPS->setUpdateRepFormatFlag( uiCode ? true : false );
    602596  }
     
    605599    pcSPS->setUpdateRepFormatFlag( true );
    606600  }
    607   if( pcSPS->getLayerId() == 0 || pcSPS->getUpdateRepFormatFlag() )
    608   {
    609 #endif
     601  if( pcSPS->getLayerId() == 0 || pcSPS->getUpdateRepFormatFlag() )
     602  {
     603#endif
     604#if AUXILIARY_PICTURES
     605    READ_UVLC(     uiCode, "chroma_format_idc" );                  pcSPS->setChromaFormatIdc( ChromaFormat(uiCode) );
     606#else
    610607    READ_UVLC(     uiCode, "chroma_format_idc" );                  pcSPS->setChromaFormatIdc( uiCode );
     608#endif
    611609    assert(uiCode <= 3);
    612610    // 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
     
    639637  }
    640638#if REPN_FORMAT_IN_VPS
    641   if(  pcSPS->getLayerId() == 0 || pcSPS->getUpdateRepFormatFlag() ) 
     639  if(  pcSPS->getLayerId() == 0 || pcSPS->getUpdateRepFormatFlag() )
    642640  {
    643641#endif
     
    659657  UInt subLayerOrderingInfoPresentFlag;
    660658  READ_FLAG(subLayerOrderingInfoPresentFlag, "sps_sub_layer_ordering_info_present_flag");
    661  
     659
    662660  for(UInt i=0; i <= pcSPS->getMaxTLayers()-1; i++)
    663661  {
     
    728726          }
    729727
    730           // It is a requirement of bitstream conformance that, when an SPS with nuh_layer_id equal to nuhLayerIdA is active for a layer with nuh_layer_id equal to nuhLayerIdB and 
     728          // It is a requirement of bitstream conformance that, when an SPS with nuh_layer_id equal to nuhLayerIdA is active for a layer with nuh_layer_id equal to nuhLayerIdB and
    731729          // sps_infer_scaling_list_flag in the SPS is equal to 1, sps_infer_scaling_list_flag shall be equal to 0 for the SPS that is active for the layer with nuh_layer_id equal to sps_scaling_list_ref_layer_id
    732730          assert( pcSPS->getSPS( pcSPS->getScalingListRefLayerId() )->getPredScalingListFlag() == false );
    733731
    734           // It is a requirement of bitstream conformance that, when an SPS with nuh_layer_id equal to nuhLayerIdA is active for a layer with nuh_layer_id equal to nuhLayerIdB, 
     732          // It is a requirement of bitstream conformance that, when an SPS with nuh_layer_id equal to nuhLayerIdA is active for a layer with nuh_layer_id equal to nuhLayerIdB,
    735733          // the layer with nuh_layer_id equal to sps_scaling_list_ref_layer_id shall be a direct or indirect reference layer of the layer with nuh_layer_id equal to nuhLayerIdB
    736734          assert( pcSPS->getVPS()->getScalingListLayerDependency( pcSPS->getLayerId(), pcSPS->getScalingListRefLayerId() ) == true );
     
    841839  assert( uiCode == 0 );
    842840#endif
    843 #if SCALED_REF_LAYER_OFFSETS
    844841  if( pcSPS->getLayerId() > 0 )
    845842  {
    846     Int iCode; 
     843    Int iCode;
    847844    READ_UVLC( uiCode,      "num_scaled_ref_layer_offsets" ); pcSPS->setNumScaledRefLayerOffsets(uiCode);
    848845    for(Int i = 0; i < pcSPS->getNumScaledRefLayerOffsets(); i++)
     
    855852    }
    856853  }
    857 #endif
    858854#if M0463_VUI_EXT_ILP_REF
    859855  ////   sps_extension_vui_parameters( )
    860856  if( pcSPS->getVuiParameters()->getBitstreamRestrictionFlag() )
    861   { 
    862     READ_UVLC( uiCode, "num_ilp_restricted_ref_layers" ); pcSPS->setNumIlpRestrictedRefLayers( uiCode ); 
    863     for( Int i = 0; i < pcSPS->getNumIlpRestrictedRefLayers( ); i++ ) 
    864     { 
    865       READ_UVLC( uiCode, "min_spatial_segment_offset_plus1" ); pcSPS->setMinSpatialSegmentOffsetPlus1( i, uiCode ); 
    866       if( pcSPS->getMinSpatialSegmentOffsetPlus1( i ) > 0 ) 
    867       { 
    868         READ_FLAG( uiCode, "ctu_based_offset_enabled_flag[ i ]"); pcSPS->setCtuBasedOffsetEnabledFlag(i, uiCode == 1 ); 
    869         if( pcSPS->getCtuBasedOffsetEnabledFlag( i ) ) 
    870         {
    871           READ_UVLC( uiCode, "min_horizontal_ctu_offset_plus1[ i ]"); pcSPS->setMinHorizontalCtuOffsetPlus1( i, uiCode ); 
    872         }
    873       } 
    874     } 
    875   } 
     857  {
     858    READ_UVLC( uiCode, "num_ilp_restricted_ref_layers" ); pcSPS->setNumIlpRestrictedRefLayers( uiCode );
     859    for( Int i = 0; i < pcSPS->getNumIlpRestrictedRefLayers( ); i++ )
     860    {
     861      READ_UVLC( uiCode, "min_spatial_segment_offset_plus1" ); pcSPS->setMinSpatialSegmentOffsetPlus1( i, uiCode );
     862      if( pcSPS->getMinSpatialSegmentOffsetPlus1( i ) > 0 )
     863      {
     864        READ_FLAG( uiCode, "ctu_based_offset_enabled_flag[ i ]"); pcSPS->setCtuBasedOffsetEnabledFlag(i, uiCode == 1 );
     865        if( pcSPS->getCtuBasedOffsetEnabledFlag( i ) )
     866        {
     867          READ_UVLC( uiCode, "min_horizontal_ctu_offset_plus1[ i ]"); pcSPS->setMinHorizontalCtuOffsetPlus1( i, uiCode );
     868        }
     869      }
     870    }
     871  }
    876872  ////   sps_extension_vui_parameters( ) END
    877873#endif
     
    1000996}
    1001997
     998#if SVC_EXTENSION
    1002999#if VPS_EXTNS
    10031000Void TDecCavlc::parseVPSExtension(TComVPS *vps)
     
    10181015  vps->setNumScalabilityTypes(numScalabilityTypes);
    10191016
    1020 #if VPS_SPLIT_FLAG
    10211017  for(j = 0; j < numScalabilityTypes - vps->getSplittingFlag(); j++)
    1022 #else
    1023   for(j = 0; j < numScalabilityTypes; j++)
    1024 #endif
    10251018  {
    10261019    READ_CODE( 3, uiCode, "dimension_id_len_minus1[j]" ); vps->setDimensionIdLen(j, uiCode + 1);
    10271020  }
    1028 #if VPS_SPLIT_FLAG
     1021
    10291022  if(vps->getSplittingFlag())
    10301023  {
     
    10381031    numBits = 6;
    10391032  }
    1040 #else
    1041   if(vps->getSplittingFlag())
    1042   {
    1043     UInt numBits = 0;
    1044     for(j = 0; j < numScalabilityTypes; j++)
    1045     {
    1046       numBits += vps->getDimensionIdLen(j);
    1047     }
    1048     assert( numBits <= 6 );
    1049   }
    1050 #endif
    10511033
    10521034  READ_FLAG( uiCode, "vps_nuh_layer_id_present_flag" ); vps->setNuhLayerIdPresentFlag(uiCode ? true : false);
     
    10661048    vps->setLayerIdInVps(vps->getLayerIdInNuh(i), i);
    10671049
    1068 #if VPS_SPLIT_FLAG
    1069     if(!vps->getSplittingFlag())
    1070 #endif
     1050    if( !vps->getSplittingFlag() )
     1051    {
    10711052    for(j = 0; j < numScalabilityTypes; j++)
    10721053    {
    10731054      READ_CODE( vps->getDimensionIdLen(j), uiCode, "dimension_id[i][j]" ); vps->setDimensionId(i, j, uiCode);
     1055#if !AUXILIARY_PICTURES
    10741056      assert( uiCode <= vps->getMaxLayerId() );
    1075     }
    1076   }
    1077 #endif
    1078 #if VIEW_ID_RELATED_SIGNALING
    1079   // if ( pcVPS->getNumViews() > 1 ) 
    1080   //   However, this is a bug in the text since, view_id_len_minus1 is needed to parse view_id_val.
     1057#endif
     1058    }
     1059  }
     1060  }
     1061#endif
     1062#if VIEW_ID_RELATED_SIGNALING
     1063  // if ( pcVPS->getNumViews() > 1 )
     1064  //   However, this is a bug in the text since, view_id_len_minus1 is needed to parse view_id_val.
    10811065  {
    10821066    READ_CODE( 4, uiCode, "view_id_len_minus1" ); vps->setViewIdLenMinus1( uiCode );
     
    10881072  }
    10891073#endif
    1090 #if VPS_MOVE_DIR_DEPENDENCY_FLAG
    10911074#if VPS_EXTN_DIRECT_REF_LAYERS
    10921075  // For layer 0
     
    11081091  }
    11091092#endif
    1110 #endif
    11111093#if JCTVC_M0203_INTERLAYER_PRED_IDC
    11121094#if N0120_MAX_TID_REF_PRESENT_FLAG
     
    11161098    for(i = 0; i < vps->getMaxLayers() - 1; i++)
    11171099    {
     1100#if O0225_MAX_TID_FOR_REF_LAYERS
     1101       for( j = i+1; j <= vps->getMaxLayers() - 1; j++)
     1102       {
     1103         if(vps->getDirectDependencyFlag(j, i))
     1104         {
     1105           READ_CODE( 3, uiCode, "max_tid_il_ref_pics_plus1[i][j]" ); vps->setMaxTidIlRefPicsPlus1(i, j, uiCode);
     1106           assert( uiCode <= vps->getMaxTLayers());
     1107         }
     1108       }
     1109#else
    11181110      READ_CODE( 3, uiCode, "max_tid_il_ref_pics_plus1[i]" ); vps->setMaxTidIlRefPicsPlus1(i, uiCode);
    11191111#if N0120_MAX_TID_REF_CFG
    11201112      assert( uiCode <= vps->getMaxTLayers());
    1121 #else 
     1113#else
    11221114      assert( uiCode <= vps->getMaxTLayers()+ 1 );
     1115#endif
    11231116#endif
    11241117    }
    11251118  }
    1126   else 
     1119  else
    11271120  {
    11281121    for(i = 0; i < vps->getMaxLayers() - 1; i++)
    11291122    {
     1123#if O0225_MAX_TID_FOR_REF_LAYERS
     1124       for( j = i+1; j <= vps->getMaxLayers() - 1; j++)
     1125       {
     1126          vps->setMaxTidIlRefPicsPlus1(i, j, 7);
     1127       }
     1128#else
    11301129      vps->setMaxTidIlRefPicsPlus1(i, 7);
     1130#endif
    11311131    }
    11321132  }
     
    11341134  for(i = 0; i < vps->getMaxLayers() - 1; i++)
    11351135  {
     1136#if O0225_MAX_TID_FOR_REF_LAYERS
     1137       for( j = i+1; j <= vps->getMaxLayers() - 1; j++)
     1138       {
     1139         if(vps->getDirectDependencyFlag(j, i))
     1140         {
     1141           READ_CODE( 3, uiCode, "max_tid_il_ref_pics_plus1[i][j]" ); vps->setMaxTidIlRefPicsPlus1(i, j, uiCode);
     1142           assert( uiCode <= vps->getMaxTLayers() );
     1143         }
     1144       }
     1145#else
    11361146    READ_CODE( 3, uiCode, "max_tid_il_ref_pics_plus1[i]" ); vps->setMaxTidIlRefPicsPlus1(i, uiCode);
    11371147    assert( uiCode <= vps->getMaxTLayers() );
     1148#endif   
    11381149  }
    11391150#endif
     
    11441155#if VPS_EXTN_PROFILE_INFO
    11451156  // Profile-tier-level signalling
    1146 #if VPS_PROFILE_OUTPUT_LAYERS
    11471157  READ_CODE( 10, uiCode, "vps_number_layer_sets_minus1" );     assert( uiCode == (vps->getNumLayerSets() - 1) );
    11481158  READ_CODE(  6, uiCode, "vps_num_profile_tier_level_minus1"); vps->setNumProfileTierLevel( uiCode + 1 );
    11491159  vps->getPTLForExtnPtr()->resize(vps->getNumProfileTierLevel());
    11501160  for(Int idx = 1; idx <= vps->getNumProfileTierLevel() - 1; idx++)
    1151 #else
    1152   vps->getPTLForExtnPtr()->resize(vps->getNumLayerSets());
    1153   for(Int idx = 1; idx <= vps->getNumLayerSets() - 1; idx++)
    1154 #endif
    11551161  {
    11561162    READ_FLAG( uiCode, "vps_profile_present_flag[i]" ); vps->setProfilePresentFlag(idx, uiCode ? true : false);
    11571163    if( !vps->getProfilePresentFlag(idx) )
    11581164    {
    1159 #if VPS_PROFILE_OUTPUT_LAYERS
    11601165      READ_CODE( 6, uiCode, "profile_ref_minus1[i]" ); vps->setProfileLayerSetRef(idx, uiCode + 1);
    1161 #else
    1162       READ_UVLC( uiCode, "vps_profile_layer_set_ref_minus1[i]" ); vps->setProfileLayerSetRef(idx, uiCode + 1);
    1163 #endif
    11641166      assert( vps->getProfileLayerSetRef(idx) < idx );
     1167
    11651168      // Copy profile information as indicated
    11661169      vps->getPTLForExtn(idx)->copyProfileInfo( vps->getPTLForExtn( vps->getProfileLayerSetRef(idx) ) );
     
    11701173#endif
    11711174
    1172 #if VPS_PROFILE_OUTPUT_LAYERS
    11731175  READ_FLAG( uiCode, "more_output_layer_sets_than_default_flag" ); vps->setMoreOutputLayerSetsThanDefaultFlag( uiCode ? true : false );
    11741176  Int numOutputLayerSets = 0;
     
    12311233    READ_CODE( numBits, uiCode, "profile_level_tier_idx[i]" );     vps->setProfileLevelTierIdx(i, uiCode);
    12321234  }
    1233 #else
    1234 #if VPS_EXTN_OP_LAYER_SETS
    1235   // Target output layer signalling
    1236   READ_UVLC( uiCode,            "vps_num_output_layer_sets"); vps->setNumOutputLayerSets(uiCode);
    1237   for(i = 0; i < vps->getNumOutputLayerSets(); i++)
    1238   {
    1239 #if VPS_OUTPUT_LAYER_SET_IDX
    1240     READ_UVLC( uiCode,           "vps_output_layer_set_idx_minus1[i]"); vps->setOutputLayerSetIdx(i, uiCode + 1);
    1241 #else
    1242     READ_UVLC( uiCode,           "vps_output_layer_set_idx[i]"); vps->setOutputLayerSetIdx(i, uiCode);
    1243 #endif
    1244     Int lsIdx = vps->getOutputLayerSetIdx(i);
    1245     for(j = 0; j <= vps->getMaxLayerId(); j++)
    1246     {
    1247       if(vps->getLayerIdIncludedFlag(lsIdx, j))
    1248       {
    1249         READ_FLAG( uiCode, "vps_output_layer_flag[lsIdx][j]"); vps->setOutputLayerFlag(lsIdx, j, uiCode);
    1250       }
    1251     }
    1252   }
    1253 #endif
    1254 #endif
     1235
    12551236#if REPN_FORMAT_IN_VPS
    1256   READ_FLAG( uiCode, "rep_format_idx_present_flag"); 
     1237  READ_FLAG( uiCode, "rep_format_idx_present_flag");
    12571238  vps->setRepFormatIdxPresentFlag( uiCode ? true : false );
    12581239
     
    12731254    parseRepFormat( vps->getVpsRepFormat(i) );
    12741255  }
    1275  
     1256
    12761257  // Default assignment for layer 0
    12771258  vps->setVpsRepFormatIdx( 0, 0 );
     
    13051286  vps->setMaxOneActiveRefLayerFlag(uiCode);
    13061287#endif
    1307 
    1308 #if N0147_IRAP_ALIGN_FLAG
     1288#if O0062_POC_LSB_NOT_PRESENT_FLAG
     1289  for(i = 1; i< vps->getMaxLayers(); i++)
     1290  {
     1291    if( vps->getNumDirectRefLayers( vps->getLayerIdInNuh(i) ) == 0  )
     1292    {
     1293      READ_FLAG(uiCode, "poc_lsb_not_present_flag[i]");
     1294      vps->setPocLsbNotPresentFlag(i, uiCode);
     1295    }
     1296  }
     1297#endif
     1298#if O0215_PHASE_ALIGNMENT
     1299  READ_FLAG( uiCode, "cross_layer_phase_alignment_flag"); vps->setPhaseAlignFlag( uiCode == 1 ? true : false );
     1300#endif
     1301
     1302#if N0147_IRAP_ALIGN_FLAG && !IRAP_ALIGN_FLAG_IN_VPS_VUI
    13091303  READ_FLAG(uiCode, "cross_layer_irap_aligned_flag" );
    13101304  vps->setCrossLayerIrapAlignFlag(uiCode);
    1311 #endif
    1312 
    1313 #if !VPS_MOVE_DIR_DEPENDENCY_FLAG
    1314 #if VPS_EXTN_DIRECT_REF_LAYERS
    1315   // For layer 0
    1316   vps->setNumDirectRefLayers(0, 0);
    1317   // For other layers
    1318   for( Int layerCtr = 1; layerCtr <= vps->getMaxLayers() - 1; layerCtr++)
    1319   {
    1320     UInt numDirectRefLayers = 0;
    1321     for( Int refLayerCtr = 0; refLayerCtr < layerCtr; refLayerCtr++)
    1322     {
    1323       READ_FLAG(uiCode, "direct_dependency_flag[i][j]" ); vps->setDirectDependencyFlag(layerCtr, refLayerCtr, uiCode? true : false);
    1324       if(uiCode)
    1325       {
    1326         vps->setRefLayerId(layerCtr, numDirectRefLayers, refLayerCtr);
    1327         numDirectRefLayers++;
    1328       }
    1329     }
    1330     vps->setNumDirectRefLayers(layerCtr, numDirectRefLayers);
    1331   }
    1332 #endif
    1333 #endif
     1305#endif
     1306
    13341307#if VPS_EXTN_DIRECT_REF_LAYERS && M0457_PREDICTION_INDICATIONS
    13351308  READ_UVLC( uiCode,           "direct_dep_type_len_minus2"); vps->setDirectDepTypeLen(uiCode+2);
     
    13511324    {
    13521325      for(j = 0; j < i; j++)
    1353         {     
     1326        {
    13541327          vps->setScalingListLayerDependency( i, j, vps->checkLayerDependency( i,j ) );
    13551328        }
     
    13701343    }
    13711344    parseVPSVUI(vps);
    1372 #endif 
     1345#endif
    13731346  }
    13741347}
     
    13781351{
    13791352  UInt uiCode;
     1353#if AUXILIARY_PICTURES
     1354  READ_CODE( 2, uiCode, "chroma_format_idc" );               repFormat->setChromaFormatVpsIdc( ChromaFormat(uiCode) );
     1355#else
    13801356  READ_CODE( 2, uiCode, "chroma_format_idc" );               repFormat->setChromaFormatVpsIdc( uiCode );
     1357#endif
    13811358 
    13821359  if( repFormat->getChromaFormatVpsIdc() == 3 )
     
    13871364  READ_CODE ( 16, uiCode, "pic_width_in_luma_samples" );     repFormat->setPicWidthVpsInLumaSamples ( uiCode );
    13881365  READ_CODE ( 16, uiCode, "pic_height_in_luma_samples" );    repFormat->setPicHeightVpsInLumaSamples( uiCode );
    1389  
     1366
    13901367  READ_CODE( 4, uiCode, "bit_depth_luma_minus8" );           repFormat->setBitDepthVpsLuma  ( uiCode + 8 );
    13911368  READ_CODE( 4, uiCode, "bit_depth_chroma_minus8" );         repFormat->setBitDepthVpsChroma( uiCode + 8 );
     
    13981375  UInt i,j;
    13991376  UInt uiCode;
     1377#if IRAP_ALIGN_FLAG_IN_VPS_VUI
     1378  READ_FLAG(uiCode, "cross_layer_irap_aligned_flag" );
     1379  vps->setCrossLayerIrapAlignFlag(uiCode);
     1380#endif
    14001381#if VPS_VUI_BITRATE_PICRATE
    14011382  READ_FLAG( uiCode,        "bit_rate_present_vps_flag" );  vps->setBitRatePresentVpsFlag( uiCode ? true : false );
     
    14531434    for(j = 0; j < vps->getNumDirectRefLayers(vps->getLayerIdInNuh(i)); j++)
    14541435    {
    1455       READ_FLAG( uiCode, "tile_boundaries_aligned_flag[i][j]" ); vps->setTileBoundariesAlignedFlag(i,j,(uiCode == 1));     
    1456     }
    1457   } 
    1458 #endif 
     1436      READ_FLAG( uiCode, "tile_boundaries_aligned_flag[i][j]" ); vps->setTileBoundariesAlignedFlag(i,j,(uiCode == 1));
     1437    }
     1438  }
     1439#endif
    14591440#if N0160_VUI_EXT_ILP_REF
    1460     READ_FLAG( uiCode, "num_ilp_restricted_ref_layers" ); vps->setNumIlpRestrictedRefLayers( uiCode == 1 ); 
     1441    READ_FLAG( uiCode, "num_ilp_restricted_ref_layers" ); vps->setNumIlpRestrictedRefLayers( uiCode == 1 );
    14611442  if( vps->getNumIlpRestrictedRefLayers())
    14621443  {
     
    14651446      for(j = 0; j < vps->getNumDirectRefLayers(vps->getLayerIdInNuh(i)); j++)
    14661447      {
    1467         READ_UVLC( uiCode, "min_spatial_segment_offset_plus1[i][j]" ); vps->setMinSpatialSegmentOffsetPlus1( i, j, uiCode ); 
    1468         if( vps->getMinSpatialSegmentOffsetPlus1(i,j ) > 0 ) 
    1469         { 
    1470           READ_FLAG( uiCode, "ctu_based_offset_enabled_flag[i][j]"); vps->setCtuBasedOffsetEnabledFlag(i, j, uiCode == 1 ); 
    1471           if(vps->getCtuBasedOffsetEnabledFlag(i,j)) 
     1448        READ_UVLC( uiCode, "min_spatial_segment_offset_plus1[i][j]" ); vps->setMinSpatialSegmentOffsetPlus1( i, j, uiCode );
     1449        if( vps->getMinSpatialSegmentOffsetPlus1(i,j ) > 0 )
     1450        {
     1451          READ_FLAG( uiCode, "ctu_based_offset_enabled_flag[i][j]"); vps->setCtuBasedOffsetEnabledFlag(i, j, uiCode == 1 );
     1452          if(vps->getCtuBasedOffsetEnabledFlag(i,j))
    14721453          {
    1473             READ_UVLC( uiCode, "min_horizontal_ctu_offset_plus1[i][j]"); vps->setMinHorizontalCtuOffsetPlus1( i,j, uiCode ); 
     1454            READ_UVLC( uiCode, "min_horizontal_ctu_offset_plus1[i][j]"); vps->setMinHorizontalCtuOffsetPlus1( i,j, uiCode );
    14741455          }
    1475         } 
    1476       } 
    1477     }
    1478   }
    1479 #endif
    1480 }
    1481 #endif
     1456        }
     1457      }
     1458    }
     1459  }
     1460#endif
     1461}
     1462#endif
     1463#endif //SVC_EXTENSION
     1464
    14821465Void TDecCavlc::parseSliceHeader (TComSlice*& rpcSlice, ParameterSetManagerDecoder *parameterSetManager)
    14831466{
     
    15521535  if(!rpcSlice->getDependentSliceSegmentFlag())
    15531536  {
     1537#if SVC_EXTENSION
    15541538#if POC_RESET_FLAG
    1555     Int iBits = 0; 
     1539    Int iBits = 0;
    15561540    if(rpcSlice->getPPS()->getNumExtraSliceHeaderBits() > iBits)
    15571541    {
     
    15691553    }
    15701554#else
    1571 #if SH_DISCARDABLE_FLAG
    15721555    if(rpcSlice->getPPS()->getNumExtraSliceHeaderBits()>0)
    15731556    {
     
    15781561      READ_FLAG(uiCode, "slice_reserved_undetermined_flag[]"); // ignored
    15791562    }
    1580 #else
     1563#endif
     1564#else //SVC_EXTENSION
    15811565    for (Int i = 0; i < rpcSlice->getPPS()->getNumExtraSliceHeaderBits(); i++)
    15821566    {
    15831567      READ_FLAG(uiCode, "slice_reserved_undetermined_flag[]"); // ignored
    15841568    }
    1585 #endif
    1586 #endif
     1569#endif //SVC_EXTENSION
    15871570
    15881571    READ_UVLC (    uiCode, "slice_type" );            rpcSlice->setSliceType((SliceType)uiCode);
     
    16111594    }
    16121595#if N0065_LAYER_POC_ALIGNMENT
     1596#if SHM_FIX7
     1597    Int iPOClsb = 0;
     1598#endif
     1599#if O0062_POC_LSB_NOT_PRESENT_FLAG
     1600    if( ( rpcSlice->getLayerId() > 0 && !rpcSlice->getVPS()->getPocLsbNotPresentFlag( rpcSlice->getVPS()->getLayerIdInVps(rpcSlice->getLayerId())) ) || !rpcSlice->getIdrPicFlag())
     1601#else
    16131602    if( rpcSlice->getLayerId() > 0 || !rpcSlice->getIdrPicFlag() )
     1603#endif
    16141604#else
    16151605    else
     
    16171607    {
    16181608      READ_CODE(sps->getBitsForPOC(), uiCode, "pic_order_cnt_lsb");
     1609#if SHM_FIX7
     1610      iPOClsb = uiCode;
     1611#else
    16191612      Int iPOClsb = uiCode;
     1613#endif
    16201614      Int iPrevPOC = rpcSlice->getPrevTid0POC();
    16211615      Int iMaxPOClsb = 1<< sps->getBitsForPOC();
     
    16451639
    16461640#if N0065_LAYER_POC_ALIGNMENT
     1641#if SHM_FIX7
     1642      }
     1643#endif
    16471644      if( !rpcSlice->getIdrPicFlag() )
    16481645      {
     
    17371734            Int pocLTCurr = rpcSlice->getPOC() - deltaPocMSBCycleLT * maxPicOrderCntLSB
    17381735                                        - iPOClsb + pocLsbLt;
     1736
    17391737            rps->setPOC     (j, pocLTCurr);
    17401738            rps->setDeltaPOC(j, - rpcSlice->getPOC() + pocLTCurr);
     
    17461744            rps->setDeltaPOC(j, - rpcSlice->getPOC() + pocLsbLt);
    17471745            rps->setCheckLTMSBPresent(j,false);
    1748            
     1746
    17491747            // reset deltaPocMSBCycleLT for first LTRP from slice header if MSB not present
    17501748            if( j == offset+(numOfLtrp-numLtrpInSPS)-1 )
     
    17791777        rpcSlice->setEnableTMVPFlag(false);
    17801778      }
    1781 #if N0065_LAYER_POC_ALIGNMENT
     1779#if N0065_LAYER_POC_ALIGNMENT && !SHM_FIX7
    17821780    }
    17831781#endif
     
    17881786    rpcSlice->setActiveNumILRRefIdx(0);
    17891787#if ILP_SSH_SIG
     1788#if ILP_SSH_SIG_FIX
     1789    if((sps->getLayerId() > 0) && !(rpcSlice->getVPS()->getIlpSshSignalingEnabledFlag()) && (rpcSlice->getNumILRRefIdx() > 0) )
     1790#else
    17901791    if((sps->getLayerId() > 0) && rpcSlice->getVPS()->getIlpSshSignalingEnabledFlag() && (rpcSlice->getNumILRRefIdx() > 0) )
     1792#endif
    17911793#else
    17921794    if((sps->getLayerId() > 0)  &&  (rpcSlice->getNumILRRefIdx() > 0) )
     
    18411843    }
    18421844#if ILP_SSH_SIG
     1845#if ILP_SSH_SIG_FIX
     1846    else if( rpcSlice->getVPS()->getIlpSshSignalingEnabledFlag() == true )
     1847#else
    18431848    else if( rpcSlice->getVPS()->getIlpSshSignalingEnabledFlag() == false )
     1849#endif
    18441850    {
    18451851      rpcSlice->setInterLayerPredEnabledFlag(true);
     
    18701876    {
    18711877      READ_FLAG(uiCode, "slice_sao_luma_flag");  rpcSlice->setSaoEnabledFlag((Bool)uiCode);
     1878#if AUXILIARY_PICTURES
     1879      ChromaFormat format;
     1880#if REPN_FORMAT_IN_VPS
     1881      if( ( sps->getLayerId() == 0 ) || sps->getUpdateRepFormatFlag() )
     1882      {
     1883        format = sps->getChromaFormatIdc();
     1884      }
     1885      else
     1886      {
     1887        format = rpcSlice->getVPS()->getVpsRepFormat( rpcSlice->getVPS()->getVpsRepFormatIdx(sps->getLayerId()) )->getChromaFormatVpsIdc();
     1888      }
     1889#else
     1890      format = sps->getChromaFormatIdc();
     1891#endif
     1892      if (format != CHROMA_400)
     1893      {
     1894#endif
    18721895      READ_FLAG(uiCode, "slice_sao_chroma_flag");  rpcSlice->setSaoEnabledFlagChroma((Bool)uiCode);
     1896#if AUXILIARY_PICTURES
     1897      }
     1898      else
     1899      {
     1900        rpcSlice->setSaoEnabledFlagChroma(false);
     1901      }
     1902#endif
    18731903    }
    18741904
     
    20692099
    20702100#if REPN_FORMAT_IN_VPS
     2101#if O0194_DIFFERENT_BITDEPTH_EL_BL
     2102    g_bitDepthYLayer[rpcSlice->getLayerId()] = rpcSlice->getBitDepthY();
     2103    g_bitDepthCLayer[rpcSlice->getLayerId()] = rpcSlice->getBitDepthC();
     2104#endif
    20712105    assert( rpcSlice->getSliceQp() >= -rpcSlice->getQpBDOffsetY() );
    20722106#else
     
    21792213  {
    21802214    Int endOfSliceHeaderLocation = m_pcBitstream->getByteLocation();
    2181    
     2215
    21822216    // Adjust endOfSliceHeaderLocation to account for emulation prevention bytes in the slice segment header
    21832217    for ( UInt curByteIdx  = 0; curByteIdx<m_pcBitstream->numEmulationPreventionBytesRead(); curByteIdx++ )
     
    24652499  SliceType       eSliceType  = pcSlice->getSliceType();
    24662500  Int             iNbRef       = (eSliceType == B_SLICE ) ? (2) : (1);
     2501#if SVC_EXTENSION
     2502  UInt            uiLog2WeightDenomLuma = 0, uiLog2WeightDenomChroma = 0;
     2503#else
    24672504  UInt            uiLog2WeightDenomLuma, uiLog2WeightDenomChroma;
     2505#endif
    24682506  UInt            uiTotalSignalledWeightFlags = 0;
    24692507
    24702508  Int iDeltaDenom;
     2509#if AUXILIARY_PICTURES
     2510  if (pcSlice->getChromaFormatIdc() == CHROMA_400)
     2511  {
     2512    bChroma = false;
     2513  }
     2514#endif
    24712515  // decode delta_luma_log2_weight_denom :
    24722516  READ_UVLC( uiLog2WeightDenomLuma, "luma_log2_weight_denom" );     // ue(v): luma_log2_weight_denom
     
    24882532
    24892533      wp[0].uiLog2WeightDenom = uiLog2WeightDenomLuma;
     2534#if AUXILIARY_PICTURES
     2535      if (!bChroma)
     2536      {
     2537        wp[1].uiLog2WeightDenom = 0;
     2538        wp[2].uiLog2WeightDenom = 0;
     2539      }
     2540      else
     2541      {
     2542#endif
    24902543      wp[1].uiLog2WeightDenom = uiLog2WeightDenomChroma;
    24912544      wp[2].uiLog2WeightDenom = uiLog2WeightDenomChroma;
     2545#if AUXILIARY_PICTURES
     2546      }
     2547#endif
    24922548
    24932549      UInt  uiCode;
     
    25852641#if IL_SL_SIGNALLING_N0371
    25862642      if ( scalingList->getLayerId() > 0 && scalingList->getPredScalingListFlag() )
    2587       { 
     2643      {
    25882644        READ_FLAG( code, "scaling_list_pred_mode_flag");
    25892645        scalingListPredModeFlag = (code) ? true : false;
  • trunk/source/Lib/TLibDecoder/TDecCAVLC.h

    r442 r494  
    7272  Void  parseQtRootCbf      ( UInt uiAbsPartIdx, UInt& uiQtRootCbf );
    7373  Void  parseVPS            ( TComVPS* pcVPS );
     74#if SPS_EXTENSION
    7475#if VPS_EXTNS
    7576  Void  parseVPSExtension   ( TComVPS* pcVPS );
     
    8283  Void  parseRepFormat      ( RepFormat *repFormat );
    8384#endif
    84 #if SPS_SUB_LAYER_INFO
    8585  Void  parseSPS            ( TComSPS* pcSPS, ParameterSetManagerDecoder *parameterSetManager );
    86 #else
     86  Void  parseSPSExtension    ( TComSPS* pcSPS );
     87#else //SVC_EXTENSION
    8788  Void  parseSPS            ( TComSPS* pcSPS );
    88 #endif
    89 #if SPS_EXTENSION
    90   Void parseSPSExtension    ( TComSPS* pcSPS );
    91 #endif
     89#endif //SVC_EXTENSION
    9290  Void  parsePPS            ( TComPPS* pcPPS);
    9391  Void  parseVUI            ( TComVUI* pcVUI, TComSPS* pcSPS );
  • trunk/source/Lib/TLibDecoder/TDecCu.cpp

    r442 r494  
    616616    curChromaQpOffset = pcCU->getSlice()->getPPS()->getChromaCrQpOffset() + pcCU->getSlice()->getSliceQpDeltaCr();
    617617  }
     618#if O0194_DIFFERENT_BITDEPTH_EL_BL
     619  // Bug-fix
     620#if REPN_FORMAT_IN_VPS
     621  m_pcTrQuant->setQPforQuant  ( pcCU->getQP(0), eText, pcCU->getSlice()->getQpBDOffsetC(), curChromaQpOffset );
     622#else
    618623  m_pcTrQuant->setQPforQuant  ( pcCU->getQP(0), eText, pcCU->getSlice()->getSPS()->getQpBDOffsetC(), curChromaQpOffset );
     624#endif
     625#else
     626  m_pcTrQuant->setQPforQuant  ( pcCU->getQP(0), eText, pcCU->getSlice()->getSPS()->getQpBDOffsetC(), curChromaQpOffset );
     627#endif
    619628
    620629  Int scalingListType = (pcCU->isIntra(uiAbsPartIdx) ? 0 : 3) + g_eTTable[(Int)eText];
     
    768777  // Cb and Cr
    769778  Int curChromaQpOffset = pcCU->getSlice()->getPPS()->getChromaCbQpOffset() + pcCU->getSlice()->getSliceQpDeltaCb();
     779#if O0194_DIFFERENT_BITDEPTH_EL_BL
     780  // Bug-fix
     781#if REPN_FORMAT_IN_VPS
     782  m_pcTrQuant->setQPforQuant( pcCU->getQP( uiAbsPartIdx ), TEXT_CHROMA, pcCU->getSlice()->getQpBDOffsetC(), curChromaQpOffset );
     783#else
    770784  m_pcTrQuant->setQPforQuant( pcCU->getQP( uiAbsPartIdx ), TEXT_CHROMA, pcCU->getSlice()->getSPS()->getQpBDOffsetC(), curChromaQpOffset );
     785#endif
     786#else
     787  m_pcTrQuant->setQPforQuant( pcCU->getQP( uiAbsPartIdx ), TEXT_CHROMA, pcCU->getSlice()->getSPS()->getQpBDOffsetC(), curChromaQpOffset );
     788#endif
    771789
    772790  uiWidth  >>= 1;
     
    776794
    777795  curChromaQpOffset = pcCU->getSlice()->getPPS()->getChromaCrQpOffset() + pcCU->getSlice()->getSliceQpDeltaCr();
     796#if O0194_DIFFERENT_BITDEPTH_EL_BL
     797  // Bug-fix
     798#if REPN_FORMAT_IN_VPS
     799  m_pcTrQuant->setQPforQuant( pcCU->getQP( uiAbsPartIdx ), TEXT_CHROMA, pcCU->getSlice()->getQpBDOffsetC(), curChromaQpOffset );
     800#else
    778801  m_pcTrQuant->setQPforQuant( pcCU->getQP( uiAbsPartIdx ), TEXT_CHROMA, pcCU->getSlice()->getSPS()->getQpBDOffsetC(), curChromaQpOffset );
     802#endif
     803#else
     804  m_pcTrQuant->setQPforQuant( pcCU->getQP( uiAbsPartIdx ), TEXT_CHROMA, pcCU->getSlice()->getSPS()->getQpBDOffsetC(), curChromaQpOffset );
     805#endif
    779806
    780807  piCoeff = pcCU->getCoeffCr(); pResi = m_ppcYuvResi[uiDepth]->getCrAddr();
  • trunk/source/Lib/TLibDecoder/TDecEntropy.h

    r345 r494  
    6666
    6767  virtual Void  parseVPS                  ( TComVPS* pcVPS )                       = 0;
    68 #if SPS_SUB_LAYER_INFO
     68#if SVC_EXTENSION
    6969  virtual Void  parseSPS                  ( TComSPS* pcSPS, ParameterSetManagerDecoder *parameterSetManager )           = 0;
    7070#else
     
    134134  Void    resetEntropy                ( TComSlice* p)           { m_pcEntropyDecoderIf->resetEntropy(p);                    }
    135135  Void    decodeVPS                   ( TComVPS* pcVPS ) { m_pcEntropyDecoderIf->parseVPS(pcVPS); }
    136 #if SPS_SUB_LAYER_INFO
     136#if SVC_EXTENSION
    137137  Void    decodeSPS                   ( TComSPS* pcSPS, ParameterSetManagerDecoder *parameterSetManager )    { m_pcEntropyDecoderIf->parseSPS(pcSPS, parameterSetManager);                    }
    138138#else
  • trunk/source/Lib/TLibDecoder/TDecSbac.cpp

    r442 r494  
    356356    uiHeight = pcCU->getHeight(uiAbsPartIdx)/2;
    357357    uiSampleBits = pcCU->getSlice()->getSPS()->getPCMBitDepthChroma();
     358#if AUXILIARY_PICTURES
     359    ChromaFormat format = pcCU->getSlice()->getChromaFormatIdc();
     360    UInt uiGrayVal = 1 << (uiSampleBits - 1);
     361#endif
    358362
    359363    for(uiY = 0; uiY < uiHeight; uiY++)
     
    362366      {
    363367        UInt uiSample;
     368#if AUXILIARY_PICTURES
     369        if (format == CHROMA_400)
     370          uiSample = uiGrayVal;
     371        else
     372#endif
    364373        m_pcTDecBinIf->xReadPCMCode(uiSampleBits, uiSample);
    365374        piPCMSample[uiX] = uiSample;
     
    378387      {
    379388        UInt uiSample;
     389#if AUXILIARY_PICTURES
     390        if (format == CHROMA_400)
     391          uiSample = uiGrayVal;
     392        else
     393#endif
    380394        m_pcTDecBinIf->xReadPCMCode(uiSampleBits, uiSample);
    381395        piPCMSample[uiX] = uiSample;
     
    665679  UInt uiSymbol;
    666680
     681#if AUXILIARY_PICTURES
     682  if ( pcCU->getSlice()->getChromaFormatIdc() == CHROMA_400 )
     683  {
     684    uiSymbol = DC_IDX;
     685  }
     686  else
     687  {
     688#endif
    667689  m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUChromaPredSCModel.get( 0, 0, 0 ) );
    668690
     
    681703    }
    682704  }
     705#if AUXILIARY_PICTURES
     706  }
     707#endif
    683708  pcCU->setChromIntraDirSubParts( uiSymbol, uiAbsPartIdx, uiDepth );
    684709  return;
     
    885910  UInt uiSymbol;
    886911  const UInt uiCtx = pcCU->getCtxQtCbf( eType, uiTrDepth );
     912#if AUXILIARY_PICTURES
     913  if (pcCU->getSlice()->getChromaFormatIdc() == CHROMA_400 && (eType == TEXT_CHROMA_U || eType == TEXT_CHROMA_V))
     914  {
     915    uiSymbol = 0;
     916  }
     917  else
     918  {
     919#endif
    887920  m_pcTDecBinIf->decodeBin( uiSymbol , m_cCUQtCbfSCModel.get( 0, eType ? TEXT_CHROMA: eType, uiCtx ) );
     921#if AUXILIARY_PICTURES
     922  }
     923#endif
    888924 
    889925  DTRACE_CABAC_VL( g_nSymbolCounter++ )
  • trunk/source/Lib/TLibDecoder/TDecSbac.h

    r345 r494  
    7676  Void  setBitstream              ( TComInputBitstream* p  ) { m_pcBitstream = p; m_pcTDecBinIf->init( p ); }
    7777  Void  parseVPS                  ( TComVPS* /*pcVPS*/ ) {}
    78 #if SPS_SUB_LAYER_INFO
     78#if SVC_EXTENSION
    7979  Void  parseSPS                  ( TComSPS* /*pcSPS*/, ParameterSetManagerDecoder * /*parameterSetManager*/ ) {}
    8080#else
  • trunk/source/Lib/TLibDecoder/TDecTop.cpp

    r442 r494  
    179179
    180180        m_cIlpPic[j] = new  TComPic;
     181#if AUXILIARY_PICTURES
     182#if REPN_FORMAT_IN_VPS
     183#if SVC_UPSAMPLING
     184        m_cIlpPic[j]->create(picWidth, picHeight, slice->getChromaFormatIdc(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, conformanceWindow, defaultDisplayWindow, numReorderPics, pcSPS, true);
     185#else
     186        m_cIlpPic[j]->create(picWidth, picHeight, slice->getChromaFormatIdc(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, conformanceWindow, defaultDisplayWindow, numReorderPics, true);
     187#endif
     188#else
     189#if SVC_UPSAMPLING
     190        m_cIlpPic[j]->create(pcSPS->getPicWidthInLumaSamples(), pcSPS->getPicHeightInLumaSamples(), pcSPS->getChromaFormatIdc(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, conformanceWindow, defaultDisplayWindow, numReorderPics, pcSPS, true);
     191#else
     192        m_cIlpPic[j]->create(pcSPS->getPicWidthInLumaSamples(), pcSPS->getPicHeightInLumaSamples(), pcSPS->getChromaFormatIdc(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, conformanceWindow, defaultDisplayWindow, numReorderPics, true);
     193#endif
     194#endif
     195#else
    181196#if REPN_FORMAT_IN_VPS
    182197#if SVC_UPSAMPLING
     
    190205#else
    191206        m_cIlpPic[j]->create(pcSPS->getPicWidthInLumaSamples(), pcSPS->getPicHeightInLumaSamples(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth, conformanceWindow, defaultDisplayWindow, numReorderPics, true);
     207#endif
    192208#endif
    193209#endif
     
    196212          m_cIlpPic[j]->getPicSym()->getCU(i)->initCU(m_cIlpPic[j], i);
    197213        }
    198       }
    199     }
    200   }
    201 }
    202 
    203 
    204 
    205 Void TDecTop::setILRPic(TComPic *pcPic)
    206 {
    207   for( Int i = 0; i < pcPic->getSlice(0)->getActiveNumILRRefIdx(); i++ )
    208   {
    209     Int refLayerIdc = pcPic->getSlice(0)->getInterLayerPredLayerIdc(i);
    210 
    211     if(m_cIlpPic[refLayerIdc])
    212     {
    213       m_cIlpPic[refLayerIdc]->copyUpsampledPictureYuv(pcPic->getFullPelBaseRec(refLayerIdc), m_cIlpPic[refLayerIdc]->getPicYuvRec());
    214       m_cIlpPic[refLayerIdc]->getSlice(0)->setPOC(pcPic->getPOC());
    215       m_cIlpPic[refLayerIdc]->setLayerId(pcPic->getSlice(0)->getBaseColPic(refLayerIdc)->getLayerId()); //set reference layerId
    216       m_cIlpPic[refLayerIdc]->getPicYuvRec()->setBorderExtension(false);
    217       m_cIlpPic[refLayerIdc]->getPicYuvRec()->extendPicBorder();
    218       for (Int j=0; j<m_cIlpPic[refLayerIdc]->getPicSym()->getNumberOfCUsInFrame(); j++)  // set reference CU layerId
    219       {
    220         m_cIlpPic[refLayerIdc]->getPicSym()->getCU(j)->setLayerId(m_cIlpPic[refLayerIdc]->getLayerId());
    221214      }
    222215    }
     
    310303#endif
    311304        }
    312 #if MAX_ONE_RESAMPLING_DIRECT_LAYERS
    313 #if SCALABILITY_MASK_E0104
    314         if(pcSlice->getVPS()->getScalabilityMask(2))
    315 #else
    316         if(pcSlice->getVPS()->getScalabilityMask(1))
    317 #endif
    318         {
    319           pcSlice->setPic(rpcPic);
    320         }
    321 #endif
    322305      }
    323306    }
    324307#endif
    325308   
     309#if AUXILIARY_PICTURES
     310#if REPN_FORMAT_IN_VPS
     311#if SVC_UPSAMPLING
     312    rpcPic->create ( pcSlice->getPicWidthInLumaSamples(), pcSlice->getPicHeightInLumaSamples(), pcSlice->getChromaFormatIdc(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth,
     313                     conformanceWindow, defaultDisplayWindow, numReorderPics, pcSlice->getSPS(), true);
     314#else
     315    rpcPic->create ( pcSlice->getPicWidthInLumaSamples(), pcSlice->getPicHeightInLumaSamples(), pcSlice->getChromaFormatIdc(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth,
     316                     conformanceWindow, defaultDisplayWindow, numReorderPics, true);
     317#endif
     318#else
     319#if SVC_UPSAMPLING
     320    rpcPic->create ( pcSlice->getSPS()->getPicWidthInLumaSamples(), pcSlice->getSPS()->getPicHeightInLumaSamples(), pcSlice->getSPS()->getChromaFormatIdc(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth,
     321                     conformanceWindow, defaultDisplayWindow, numReorderPics, pcSlice->getSPS(), true);
     322#else
     323    rpcPic->create ( pcSlice->getSPS()->getPicWidthInLumaSamples(), pcSlice->getSPS()->getPicHeightInLumaSamples(), pcSlice->getSPS()->getChromaFormatIdc(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth,
     324                     conformanceWindow, defaultDisplayWindow, numReorderPics, true);
     325#endif
     326#endif
     327#else
    326328#if REPN_FORMAT_IN_VPS
    327329#if SVC_UPSAMPLING
     
    341343#endif
    342344#endif
     345#endif
    343346
    344347    rpcPic->getPicSym()->allocSaoParam(&m_cSAO);
     
    381384  rpcPic->destroy();
    382385
     386#if AUXILIARY_PICTURES
     387#if REPN_FORMAT_IN_VPS
     388#if SVC_UPSAMPLING
     389  rpcPic->create ( pcSlice->getPicWidthInLumaSamples(), pcSlice->getPicHeightInLumaSamples(), pcSlice->getChromaFormatIdc(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth,
     390                   conformanceWindow, defaultDisplayWindow, numReorderPics, pcSlice->getSPS(), true);
     391
     392#else
     393  rpcPic->create ( pcSlice->getPicWidthInLumaSamples(), pcSlice->getPicHeightInLumaSamples(), pcSlice->getChromaFormatIdc(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth,
     394                   conformanceWindow, defaultDisplayWindow, numReorderPics, true);
     395#endif
     396#else
     397#if SVC_UPSAMPLING
     398  rpcPic->create ( pcSlice->getSPS()->getPicWidthInLumaSamples(), pcSlice->getSPS()->getPicHeightInLumaSamples(), pcSlice->getSPS()->getChromaFormatIdc(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth,
     399                   conformanceWindow, defaultDisplayWindow, numReorderPics, pcSlice->getSPS(), true);
     400
     401#else
     402  rpcPic->create ( pcSlice->getSPS()->getPicWidthInLumaSamples(), pcSlice->getSPS()->getPicHeightInLumaSamples(), pcSlice->getSPS()->getChromaFormatIdc(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth,
     403                   conformanceWindow, defaultDisplayWindow, numReorderPics, true);
     404#endif
     405#endif
     406#else
    383407#if REPN_FORMAT_IN_VPS
    384408#if SVC_UPSAMPLING
     
    398422  rpcPic->create ( pcSlice->getSPS()->getPicWidthInLumaSamples(), pcSlice->getSPS()->getPicHeightInLumaSamples(), g_uiMaxCUWidth, g_uiMaxCUHeight, g_uiMaxCUDepth,
    399423                   conformanceWindow, defaultDisplayWindow, numReorderPics, true);
     424#endif
    400425#endif
    401426#endif
     
    473498
    474499  Int remainingInterLayerReferencesFlag = 0;
     500#if O0225_MAX_TID_FOR_REF_LAYERS
     501  for ( Int j = latestDecIdx + 1; j < numTargetDecLayers; j++ )
     502  {
     503    Int jLidx = pcSlice->getVPS()->getLayerIdInVps(targetDecLayerIdList[j]);
     504    if ( currTid <= pcSlice->getVPS()->getMaxTidIlRefPicsPlus1(latestDecLayerId,jLidx) - 1 )
     505    {
     506#else
    475507  if ( currTid <= pcSlice->getVPS()->getMaxTidIlRefPicsPlus1(latestDecLayerId) - 1 )
    476508  {
    477509    for ( Int j = latestDecIdx + 1; j < numTargetDecLayers; j++ )
    478510    {
     511#endif
    479512      for ( Int k = 0; k < m_ppcTDecTop[targetDecLayerIdList[j]]->getNumDirectRefLayers(); k++ )
    480513      {
     
    684717
    685718#if SVC_EXTENSION
     719  m_apcSlicePilot->setSliceIdx( m_uiSliceIdx ); // it should be removed if HM will reflect it in above
    686720#if VPS_EXTN_DIRECT_REF_LAYERS && M0457_PREDICTION_INDICATIONS
    687721  setRefLayerParams(m_apcSlicePilot->getVPS());
     
    754788  // actual decoding starts here
    755789  xActivateParameterSets();
    756 #if 0 // N0147_IRAP_ALIGN_FLAG Disabled for now!
     790#if !O0223_O0139_IRAP_ALIGN_NO_CONTRAINTS
     791  //Note setting O0223_O0139_IRAP_ALIGN_NO_CONTRAINTS to 0 may cause decoder to crash.
    757792  //When cross_layer_irap_aligned_flag is equal to 0, num_extra_slice_header_bits >=1
    758793  if(!m_apcSlicePilot->getVPS()->getCrossLayerIrapAlignFlag() )
     
    10981133  pcPic->setLayerId(nalu.m_layerId);
    10991134  pcSlice->setLayerId(nalu.m_layerId);
     1135  pcSlice->setPic(pcPic);
    11001136#endif
    11011137
     
    11131149#endif
    11141150
    1115 #if SVC_EXTENSION   
    1116     if(m_layerId > 0)
     1151#if SVC_EXTENSION
     1152    // Create upsampling reference layer pictures for all possible dependent layers and do it only once for the first slice.
     1153    // Other slices might choose which reference pictures to be used for inter-layer prediction
     1154    if( m_layerId > 0 && m_uiSliceIdx == 0 )
     1155    {     
     1156      for( i = 0; i < pcSlice->getNumILRRefIdx(); i++ )
     1157      {
     1158        UInt refLayerIdc = i;
     1159#if AVC_BASE
     1160        if( pcSlice->getVPS()->getRefLayerId( m_layerId, refLayerIdc ) == 0 && m_parameterSetManagerDecoder[0].getActiveVPS()->getAvcBaseLayerFlag() )
     1161        {
     1162          pcSlice->setBaseColPic ( refLayerIdc, *m_ppcTDecTop[0]->getListPic()->begin() );
     1163#if AVC_SYNTAX
     1164          TComPic* pBLPic = pcSlice->getBaseColPic(refLayerIdc);
     1165          if( pcSlice->getPOC() == 0 )
     1166          {
     1167            // initialize partition order.
     1168            UInt* piTmp = &g_auiZscanToRaster[0];
     1169            initZscanToRaster( pBLPic->getPicSym()->getMaxDepth() + 1, 1, 0, piTmp );
     1170            initRasterToZscan( pBLPic->getPicSym()->getMaxCUWidth(), pBLPic->getPicSym()->getMaxCUHeight(), pBLPic->getPicSym()->getMaxDepth() + 1 );
     1171          }     
     1172          pBLPic->getSlice( 0 )->initBaseLayerRPL( pcSlice );
     1173          pBLPic->readBLSyntax( m_ppcTDecTop[0]->getBLSyntaxFile(), SYNTAX_BYTES );
     1174#endif
     1175        }
     1176        else
     1177        {
     1178#if VPS_EXTN_DIRECT_REF_LAYERS
     1179          TDecTop *pcTDecTop = (TDecTop *)getRefLayerDec( refLayerIdc );
     1180#else
     1181          TDecTop *pcTDecTop = (TDecTop *)getLayerDec( m_layerId-1 );
     1182#endif
     1183          TComList<TComPic*> *cListPic = pcTDecTop->getListPic();
     1184          pcSlice->setBaseColPic ( *cListPic, refLayerIdc );
     1185        }
     1186#else
     1187#if VPS_EXTN_DIRECT_REF_LAYERS
     1188        TDecTop *pcTDecTop = (TDecTop *)getRefLayerDec( refLayerIdc );
     1189#else
     1190        TDecTop *pcTDecTop = (TDecTop *)getLayerDec( m_layerId-1 );
     1191#endif
     1192        TComList<TComPic*> *cListPic = pcTDecTop->getListPic();
     1193        pcSlice->setBaseColPic ( *cListPic, refLayerIdc );
     1194#endif
     1195
     1196        const Window &scalEL = pcSlice->getSPS()->getScaledRefLayerWindow(refLayerIdc);
     1197
     1198        Int widthBL   = pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec()->getWidth();
     1199        Int heightBL  = pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec()->getHeight();
     1200
     1201        Int widthEL   = pcPic->getPicYuvRec()->getWidth()  - scalEL.getWindowLeftOffset() - scalEL.getWindowRightOffset();
     1202        Int heightEL  = pcPic->getPicYuvRec()->getHeight() - scalEL.getWindowTopOffset()  - scalEL.getWindowBottomOffset();
     1203
     1204        g_mvScalingFactor[refLayerIdc][0] = widthEL  == widthBL  ? 4096 : Clip3(-4096, 4095, ((widthEL  << 8) + (widthBL  >> 1)) / widthBL);
     1205        g_mvScalingFactor[refLayerIdc][1] = heightEL == heightBL ? 4096 : Clip3(-4096, 4095, ((heightEL << 8) + (heightBL >> 1)) / heightBL);
     1206
     1207        g_posScalingFactor[refLayerIdc][0] = ((widthBL  << 16) + (widthEL  >> 1)) / widthEL;
     1208        g_posScalingFactor[refLayerIdc][1] = ((heightBL << 16) + (heightEL >> 1)) / heightEL;
     1209
     1210#if SVC_UPSAMPLING
     1211        if( pcPic->isSpatialEnhLayer(refLayerIdc) )
     1212        {   
     1213#if O0215_PHASE_ALIGNMENT
     1214#if O0194_JOINT_US_BITSHIFT
     1215          m_cPrediction.upsampleBasePic( pcSlice, refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc), pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec(), pcPic->getPicYuvRec(), pcSlice->getSPS()->getScaledRefLayerWindow(refLayerIdc), pcSlice->getVPS()->getPhaseAlignFlag() );
     1216#else
     1217          m_cPrediction.upsampleBasePic( refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc), pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec(), pcPic->getPicYuvRec(), pcSlice->getSPS()->getScaledRefLayerWindow(refLayerIdc), pcSlice->getVPS()->getPhaseAlignFlag() );
     1218#endif
     1219#else
     1220#if O0194_JOINT_US_BITSHIFT
     1221          m_cPrediction.upsampleBasePic( pcSlice, refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc), pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec(), pcPic->getPicYuvRec(), pcSlice->getSPS()->getScaledRefLayerWindow(refLayerIdc) );
     1222#else
     1223          m_cPrediction.upsampleBasePic( refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc), pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec(), pcPic->getPicYuvRec(), pcSlice->getSPS()->getScaledRefLayerWindow(refLayerIdc) );
     1224#endif
     1225#endif
     1226        }
     1227        else
     1228        {
     1229          pcPic->setFullPelBaseRec( refLayerIdc, pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec() );
     1230        }
     1231        pcSlice->setFullPelBaseRec ( refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc) );
     1232#endif
     1233      }
     1234    }
     1235
     1236    if( m_layerId > 0 && pcSlice->getActiveNumILRRefIdx() )
    11171237    {
    11181238      for( i = 0; i < pcSlice->getActiveNumILRRefIdx(); i++ )
     
    11561276#endif
    11571277
    1158 #if SCALED_REF_LAYER_OFFSETS
    1159         const Window &scalEL = pcSlice->getSPS()->getScaledRefLayerWindow(refLayerIdc);
    1160 
    1161         Int widthBL   = pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec()->getWidth();
    1162         Int heightBL  = pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec()->getHeight();
    1163 
    1164         Int widthEL   = pcPic->getPicYuvRec()->getWidth()  - scalEL.getWindowLeftOffset() - scalEL.getWindowRightOffset();
    1165         Int heightEL  = pcPic->getPicYuvRec()->getHeight() - scalEL.getWindowTopOffset()  - scalEL.getWindowBottomOffset();
    1166 #else
    1167         const Window &confBL = pcSlice->getBaseColPic()->getPicYuvRec()->getConformanceWindow();
    1168         const Window &confEL = pcPic->getPicYuvRec()->getConformanceWindow();
    1169 
    1170         Int widthBL   = pcSlice->getBaseColPic()->getPicYuvRec()->getWidth () - confBL.getWindowLeftOffset() - confBL.getWindowRightOffset();
    1171         Int heightBL  = pcSlice->getBaseColPic()->getPicYuvRec()->getHeight() - confBL.getWindowTopOffset() - confBL.getWindowBottomOffset();
    1172 
    1173         Int widthEL   = pcPic->getPicYuvRec()->getWidth() - confEL.getWindowLeftOffset() - confEL.getWindowRightOffset();
    1174         Int heightEL  = pcPic->getPicYuvRec()->getHeight() - confEL.getWindowTopOffset() - confEL.getWindowBottomOffset();
    1175 #endif
    1176         g_mvScalingFactor[refLayerIdc][0] = widthEL  == widthBL  ? 4096 : Clip3(-4096, 4095, ((widthEL  << 8) + (widthBL  >> 1)) / widthBL);
    1177         g_mvScalingFactor[refLayerIdc][1] = heightEL == heightBL ? 4096 : Clip3(-4096, 4095, ((heightEL << 8) + (heightBL >> 1)) / heightBL);
    1178 
    1179         g_posScalingFactor[refLayerIdc][0] = ((widthBL  << 16) + (widthEL  >> 1)) / widthEL;
    1180         g_posScalingFactor[refLayerIdc][1] = ((heightBL << 16) + (heightEL >> 1)) / heightEL;
    1181 
    1182 #if SVC_UPSAMPLING
    1183         if( pcPic->isSpatialEnhLayer(refLayerIdc) )
    1184         {   
    1185 #if SCALED_REF_LAYER_OFFSETS
    1186           m_cPrediction.upsampleBasePic( refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc), pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec(), pcPic->getPicYuvRec(), pcSlice->getSPS()->getScaledRefLayerWindow(refLayerIdc) );
    1187 #else
    1188           m_cPrediction.upsampleBasePic( refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc), pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec(), pcPic->getPicYuvRec() );
    1189 #endif
    1190         }
    1191         else
    1192         {
    1193           pcPic->setFullPelBaseRec( refLayerIdc, pcSlice->getBaseColPic(refLayerIdc)->getPicYuvRec() );
    1194         }
    11951278        pcSlice->setFullPelBaseRec ( refLayerIdc, pcPic->getFullPelBaseRec(refLayerIdc) );
    1196 #endif
    1197       }
    1198     }
    1199 
    1200     if( m_layerId > 0 && pcSlice->getActiveNumILRRefIdx() )
    1201     {
    1202       setILRPic(pcPic);
     1279      }
     1280
     1281      pcSlice->setILRPic( m_cIlpPic );
     1282
    12031283#if REF_IDX_MFM
    12041284#if M0457_COL_PICTURE_SIGNALING
     
    12211301    }
    12221302#endif
    1223 #endif
    1224 
    1225 #endif //SVC_EXTENSION
    1226 
     1303#if MFM_ENCCONSTRAINT
     1304    if( pcSlice->getMFMEnabledFlag() )
     1305    {
     1306      Int refLayerId = pcSlice->getRefPic( pcSlice->getSliceType() == B_SLICE ? ( RefPicList )( 1 - pcSlice->getColFromL0Flag() ) : REF_PIC_LIST_0 , pcSlice->getColRefIdx() )->getLayerId();
     1307      if( refLayerId != pcSlice->getLayerId() )
     1308      {
     1309        TComPic* pColBasePic = pcSlice->getBaseColPic( *m_ppcTDecTop[refLayerId]->getListPic() );
     1310        assert( pColBasePic->checkSameRefInfo() == true );
     1311      }
     1312    }
     1313#endif
     1314#endif
     1315   
    12271316#if N0147_IRAP_ALIGN_FLAG
    12281317    if(  m_layerId > 0 && pcSlice->getVPS()->getCrossLayerIrapAlignFlag())
     
    12391328    }
    12401329#endif
     1330#endif //SVC_EXTENSION
    12411331   
    12421332    // For generalized B
     
    13471437#if SVC_EXTENSION
    13481438  sps->setLayerId(m_layerId);
    1349 #endif
    1350 
    1351 #if SPS_SUB_LAYER_INFO
    13521439  m_cEntropyDecoder.decodeSPS( sps, &m_parameterSetManagerDecoder[0] );
    1353 #else
    1354   m_cEntropyDecoder.decodeSPS( sps );
    1355 #endif
    1356 #if SVC_EXTENSION
    13571440  m_parameterSetManagerDecoder[m_layerId].storePrefetchedSPS(sps);
    1358 #else
    1359   m_parameterSetManagerDecoder.storePrefetchedSPS(sps);
    1360 #endif
    1361 #if SVC_EXTENSION
    13621441#if !REPN_FORMAT_IN_VPS   // ILRP can only be initialized at activation 
    13631442  if(m_numLayer>0)
     
    13661445  }
    13671446#endif
    1368 #endif
     1447#else //SVC_EXTENSION
     1448  m_cEntropyDecoder.decodeSPS( sps );
     1449  m_parameterSetManagerDecoder.storePrefetchedSPS(sps);
     1450#endif //SVC_EXTENSION
    13691451}
    13701452
     
    15191601          Window &conformanceWindow = sps->getConformanceWindow();
    15201602          Window defaultDisplayWindow = sps->getVuiParametersPresentFlag() ? sps->getVuiParameters()->getDefaultDisplayWindow() : Window();
     1603#if AUXILIARY_PICTURES
    15211604#if SVC_UPSAMPLING
    15221605#if AVC_SYNTAX
    1523 
     1606          pBLPic->create( m_ppcTDecTop[0]->getBLWidth(), m_ppcTDecTop[0]->getBLHeight(), sps->getChromaFormatIdc(), sps->getMaxCUWidth(), sps->getMaxCUHeight(), sps->getMaxCUDepth(), conformanceWindow, defaultDisplayWindow, numReorderPics, sps, true);
     1607#else
     1608          pBLPic->create( m_ppcTDecTop[0]->getBLWidth(), m_ppcTDecTop[0]->getBLHeight(), sps->getChromaFormatIdc(), sps->getMaxCUWidth(), sps->getMaxCUHeight(), sps->getMaxCUDepth(), conformanceWindow, defaultDisplayWindow, numReorderPics, NULL, true);
     1609#endif
     1610#else
     1611          pBLPic->create( m_ppcTDecTop[0]->getBLWidth(), m_ppcTDecTop[0]->getBLHeight(), sps->getChromaFormatIdc(), sps->getMaxCUWidth(), sps->getMaxCUHeight(), sps->getMaxCUDepth(), onformanceWindow, defaultDisplayWindow, numReorderPics, true);
     1612#endif
     1613#else
     1614#if SVC_UPSAMPLING
     1615#if AVC_SYNTAX
    15241616          pBLPic->create( m_ppcTDecTop[0]->getBLWidth(), m_ppcTDecTop[0]->getBLHeight(), sps->getMaxCUWidth(), sps->getMaxCUHeight(), sps->getMaxCUDepth(), conformanceWindow, defaultDisplayWindow, numReorderPics, sps, true);
    15251617#else
     
    15281620#else
    15291621          pBLPic->create( m_ppcTDecTop[0]->getBLWidth(), m_ppcTDecTop[0]->getBLHeight(), sps->getMaxCUWidth(), sps->getMaxCUHeight(), sps->getMaxCUDepth(), onformanceWindow, defaultDisplayWindow, numReorderPics, true);
     1622#endif
     1623#endif
     1624
     1625#if O0194_DIFFERENT_BITDEPTH_EL_BL
     1626          // set AVC BL bit depth, can be an input parameter from the command line
     1627          g_bitDepthYLayer[0] = 8;
     1628          g_bitDepthCLayer[0] = 8;
    15301629#endif
    15311630        }
  • trunk/source/Lib/TLibDecoder/TDecTop.h

    r442 r494  
    213213  Void      xInitILRP(TComSPS *pcSPS);
    214214#endif
    215   Void      setILRPic(TComPic *pcPic);
    216215#endif
    217216#if AVC_SYNTAX || SYNTAX_OUTPUT
Note: See TracChangeset for help on using the changeset viewer.