Changeset 884 in 3DVCSoftware for trunk/source/Lib/TLibEncoder


Ignore:
Timestamp:
29 Mar 2014, 18:55:16 (11 years ago)
Author:
tech
Message:

Merged HTM-10.1-dev0@883. (MV-HEVC 7 HLS)

Location:
trunk/source/Lib/TLibEncoder
Files:
17 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/Lib/TLibEncoder/NALwrite.cpp

    r872 r884  
    9191  vector<uint8_t>& rbsp   = nalu.m_Bitstream.getFIFO();
    9292
    93 #if H_MV_HLS_7_MISC_P0130_EOS  // This will handle situation when writing NAL with zero payload
     93#if H_MV  // This will handle situation when writing NAL with zero payload
    9494  if (rbsp.size() == 0) return;
    9595#endif
  • trunk/source/Lib/TLibEncoder/SEIwrite.cpp

    r872 r884  
    9393    fprintf( g_hTrace, "=========== Scalable Nesting SEI message ===========\n");
    9494    break;
    95 #if H_MV_HLS_7_SEI_P0204_26
     95#if H_MV
    9696    case SEI::SUB_BITSTREAM_PROPERTY:
    9797    fprintf( g_hTrace, "=========== Sub-bitstream property SEI message ===========\n");
     
    151151    xWriteSEIScalableNesting(bs, *static_cast<const SEIScalableNesting*>(&sei), sps);
    152152    break;
    153 #if H_MV_HLS_7_SEI_P0204_26
     153#if H_MV
    154154   case SEI::SUB_BITSTREAM_PROPERTY:
    155155   xWriteSEISubBitstreamProperty(*static_cast<const SEISubBitstreamProperty*>(&sei));
     
    589589}
    590590
    591 #if H_MV_HLS_7_SEI_P0204_26
     591#if H_MV
    592592Void SEIWriter::xWriteSEISubBitstreamProperty(const SEISubBitstreamProperty &sei)
    593593{
  • trunk/source/Lib/TLibEncoder/SEIwrite.h

    r872 r884  
    6666  Void xWriteSEISOPDescription(const SEISOPDescription& sei);
    6767  Void xWriteSEIScalableNesting(TComBitIf& bs, const SEIScalableNesting& sei, TComSPS *sps);
    68 #if H_MV_HLS_7_SEI_P0204_26
     68#if H_MV
    6969  Void xWriteSEISubBitstreamProperty(const SEISubBitstreamProperty &sei);
    7070#endif
  • trunk/source/Lib/TLibEncoder/TEncCavlc.cpp

    r872 r884  
    272272  WRITE_FLAG( pcPPS->getSliceHeaderExtensionPresentFlag() ? 1 : 0, "slice_segment_header_extension_present_flag");
    273273
    274 #if H_MV_HLS_7_GEN_P0166_PPS_EXTENSION
    275274#if !H_MV
    276275  WRITE_FLAG( 0, "pps_extension_flag" );
     
    290289  if( pcPPS->getPpsExtensionTypeFlag( PPS_EX_T_MV ) )
    291290  {
    292 #if H_MV_HLS_7_POC_P0041
    293291    WRITE_FLAG( pcPPS->getPocResetInfoPresentFlag( ) ? 1 : 0 , "poc_reset_info_present_flag" );
    294 #endif
    295292  }
    296293
     
    303300
    304301#endif
    305 #else
    306 #if !H_3D
    307   WRITE_FLAG( 0, "pps_extension_flag" );
    308 #else
    309   WRITE_FLAG( 1, "pps_extension_flag" );
    310   codePPSExtension( pcPPS );
    311   WRITE_FLAG( 0, "pps_extension2_flag" );
    312 #endif
    313 #endif
     302
    314303}
    315304
     
    725714#endif
    726715  WRITE_UVLC( pcSPS->getBitsForPOC()-4,                 "log2_max_pic_order_cnt_lsb_minus4" );
    727 #if H_MV_HLS_7_SPS_P0155_16_32
     716#if H_MV
    728717  if ( pcSPS->getLayerId() == 0 )
    729718  { 
     
    741730    }
    742731  }
    743 #if H_MV_HLS_7_SPS_P0155_16_32
     732#if H_MV
    744733  }
    745734#endif
     
    871860    WRITE_SVLC( pcSPS->getScaledRefLayerRightOffset( j ), "scaled_ref_layer_right_offset" );
    872861    WRITE_SVLC( pcSPS->getScaledRefLayerBottomOffset( j ), "scaled_ref_layer_bottom_offset" );
    873 #if H_MV_HLS_7_RESERVED_FLAGS
    874862    WRITE_FLAG( 0, "sps_multilayer_ext_reserved_zero_flag[ j ]" );
    875 #endif
    876863  }
    877864}
     
    904891  WRITE_FLAG( pcVPS->getTemporalNestingFlag(),                "vps_temporal_id_nesting_flag" );
    905892  assert (pcVPS->getMaxTLayers()>1||pcVPS->getTemporalNestingFlag());
    906 #if H_MV_HLS_7_VPS_P0125_24
    907893  WRITE_CODE( 0xffff,                              16,        "vps_reserved_ffff_16bits" );
    908 #else
    909 #if H_MV && !H_MV_HLS7_GEN
    910   WRITE_CODE( 0xffff,                              16,        "vps_extension_offset" );
    911 #else
    912   WRITE_CODE( 0xffff,                              16,        "vps_reserved_ffff_16bits" );
    913 #endif
    914 #endif
    915894  codePTL( pcVPS->getPTL(), true, pcVPS->getMaxTLayers() - 1 );
    916895  const Bool subLayerOrderingInfoPresentFlag = 1;
     
    1010989{
    1011990  WRITE_FLAG( pcVPS->getAvcBaseLayerFlag() ? 1 : 0,          "avc_base_layer_flag" );
    1012 #if !H_MV_HLS_7_VPS_P0307_23
    1013   WRITE_FLAG( pcVPS->getVpsVuiPresentFlag() ? 1 : 0 , "vps_vui_present_flag" );
    1014   if ( pcVPS->getVpsVuiPresentFlag() )
    1015   { 
    1016   WRITE_CODE( pcVPS->getVpsVuiOffset( ), 16,                 "vps_vui_offset" );  // TBD
    1017   }
    1018 #endif
    1019 
    1020991  WRITE_FLAG( pcVPS->getSplittingFlag() ? 1 : 0,             "splitting_flag" );
    1021  
     992
    1022993  for( Int type = 0; type < MAX_NUM_SCALABILITY_TYPES; type++ )
    1023994  {
     
    10421013    {     
    10431014      WRITE_CODE( pcVPS->getLayerIdInNuh( i ), 6,          "layer_id_in_nuh[i]");
    1044   }
     1015    }
    10451016    else
    10461017    {
    10471018      assert( pcVPS->getLayerIdInNuh( i ) == i );
    1048   }
     1019    }
    10491020
    10501021    assert(  pcVPS->getLayerIdInVps( pcVPS->getLayerIdInNuh( i ) ) == i );
     
    10641035
    10651036
    1066     WRITE_CODE( pcVPS->getViewIdLen( ), 4, "view_id_len" );
    1067    
    1068     if ( pcVPS->getViewIdLen( ) > 0 )
    1069     {   
    1070       for( Int i = 0; i < pcVPS->getNumViews(); i++ )
    1071       {
    1072         WRITE_CODE( pcVPS->getViewIdVal( i ), pcVPS->getViewIdLen( ), "view_id_val[i]" );
    1073       }
    1074     }
    1075     else
    1076     {
    1077       for( Int i = 0; i < pcVPS->getNumViews(); i++ )
    1078       {
    1079         assert( pcVPS->getViewIdVal( i ) == 0 );
    1080       }
    1081     }
     1037  WRITE_CODE( pcVPS->getViewIdLen( ), 4, "view_id_len" );
     1038
     1039  if ( pcVPS->getViewIdLen( ) > 0 )
     1040  {   
     1041    for( Int i = 0; i < pcVPS->getNumViews(); i++ )
     1042    {
     1043      WRITE_CODE( pcVPS->getViewIdVal( i ), pcVPS->getViewIdLen( ), "view_id_val[i]" );
     1044    }
     1045  }
     1046  else
     1047  {
     1048    for( Int i = 0; i < pcVPS->getNumViews(); i++ )
     1049    {
     1050      assert( pcVPS->getViewIdVal( i ) == 0 );
     1051    }
     1052  }
    10821053
    10831054
     
    11221093
    11231094  WRITE_FLAG( pcVPS->getAllRefLayersActiveFlag( ) ? 1 : 0 , "all_ref_layers_active_flag" );
    1124 #if !H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27
    1125   WRITE_CODE( pcVPS->getVpsNumberLayerSetsMinus1( )    , 10,    "vps_number_layer_sets_minus1"      );
    1126 #endif
    1127 
    1128 #if !H_MV_HLS_7_VPS_P0306_22
    1129   WRITE_CODE( pcVPS->getVpsNumProfileTierLevelMinus1( ), 6,     "vps_num_profile_tier_level_minus1" );
    1130 #else
    11311095  WRITE_UVLC( pcVPS->getVpsNumProfileTierLevelMinus1( ), "vps_num_profile_tier_level_minus1" );
    1132 #endif
    11331096
    11341097  for( Int i = 1; i <= pcVPS->getVpsNumProfileTierLevelMinus1(); i++ )
    11351098  {
    11361099    WRITE_FLAG( pcVPS->getVpsProfilePresentFlag( i ) ? 1 : 0, "vps_profile_present_flag[i]" );
    1137 #if !H_MV_HLS_7_VPS_P0048_14
    1138     if( !pcVPS->getVpsProfilePresentFlag( i ) )
    1139     {   
    1140       WRITE_CODE( pcVPS->getProfileRefMinus1( i ), 6, "profile_ref_minus1[i]" );
    1141       pcVPS->checkProfileRefMinus1( i );     
    1142     }
    1143 #endif
    11441100    codePTL( pcVPS->getPTL( i ), pcVPS->getVpsProfilePresentFlag( i ), pcVPS->getMaxTLayers() - 1 );
    11451101  }
    11461102
    1147 
    1148 
    1149 
    1150 
    1151 
    1152 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27
    11531103  WRITE_UVLC( pcVPS->getNumAddOutputLayerSets( ), "num_add_output_layer_sets" );
    11541104
     
    11571107    WRITE_CODE( pcVPS->getDefaultTargetOutputLayerIdc( ), 2, "default_target_output_layer_idc" );
    11581108  } 
    1159 #else
    1160   Int numOutputLayerSets = pcVPS->getVpsNumberLayerSetsMinus1( ) + 1;
    1161 
    1162   WRITE_FLAG( pcVPS->getMoreOutputLayerSetsThanDefaultFlag( ) ? 1 : 0, "more_output_layer_sets_than_default_flag" );
    1163 
    1164   if ( pcVPS->getMoreOutputLayerSetsThanDefaultFlag( ) )
    1165   {
    1166     WRITE_CODE( pcVPS->getNumAddOutputLayerSetsMinus1( )    , 10,    "num_add_output_layer_sets_minus1"      );
    1167     numOutputLayerSets += ( pcVPS->getNumAddOutputLayerSetsMinus1( ) + 1 );
    1168   }
    1169 
    1170   if( numOutputLayerSets > 1)
    1171   {
    1172     WRITE_CODE( pcVPS->getDefaultOneTargetOutputLayerIdc( ), 2, "default_one_target_output_layer_idc" );
    1173     pcVPS->checkDefaultOneTargetOutputLayerIdc();
    1174   } 
    1175 #endif
     1109
    11761110
    11771111  assert( pcVPS->getOutputLayerFlag(0, 0) == pcVPS->inferOutputLayerFlag( 0, 0 ));
    11781112  assert( pcVPS->getOutputLayerSetIdxMinus1( 0 ) == -1 );
    11791113
    1180 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27
    1181 
    11821114  for( Int i = 1; i < pcVPS->getNumOutputLayerSets( ); i++ )
    11831115  {
    11841116    if( i > pcVPS->getVpsNumLayerSetsMinus1( ) )   
    1185 #else
    1186   for( Int i = 1; i < numOutputLayerSets; i++ )
    1187   {
    1188     if( i > pcVPS->getVpsNumberLayerSetsMinus1( ) )
    1189 #endif
    11901117    {     
    11911118      WRITE_UVLC( pcVPS->getOutputLayerSetIdxMinus1( i ),      "output_layer_set_idx_minus1[i]" );
    1192 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27
    11931119    }
    11941120
     
    12081134    }       
    12091135
    1210 #else
    1211       for( Int j = 0; j < pcVPS->getNumLayersInIdList( j ) - 1 ; j++ )
    1212       {
    1213         WRITE_FLAG( pcVPS->getOutputLayerFlag( i, j) ? 1 : 0, "output_layer_flag" );
    1214       }     
    1215     }
    1216     else
    1217     { // These inference rules would also be helpful in spec text
    1218       assert( pcVPS->getOutputLayerSetIdxMinus1(i ) ==  i - 1 );
    1219       for( Int j = 0; j < pcVPS->getNumLayersInIdList( j ) - 1; j++ )
    1220       {             
    1221         assert( pcVPS->getOutputLayerFlag( i , j ) == pcVPS->inferOutputLayerFlag( i, j ));
    1222       }
    1223     }
    1224 #endif
    12251136    if ( pcVPS->getProfileLevelTierIdxLen()  > 0 )
    12261137    {     
    12271138      WRITE_CODE( pcVPS->getProfileLevelTierIdx( i ), pcVPS->getProfileLevelTierIdxLen() ,"profile_level_tier_idx[ i ]" );   
    12281139    }
    1229 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27
    12301140    if( pcVPS->getNumOutputLayersInOutputLayerSet( i ) == 1 && pcVPS->getNumDirectRefLayers( pcVPS->getOlsHighestOutputLayerId( i ) ) > 0 )
    12311141    {
     
    12331143    }
    12341144  }
    1235 #else
    1236   }
    1237 
    1238   if( pcVPS->getMaxLayersMinus1() > 0 )
    1239   {
    1240     WRITE_FLAG( pcVPS->getAltOutputLayerFlag( ) ? 1 : 0 , "alt_output_layer_flag" );
    1241   }
    1242 #endif
    1243 
    1244 
    1245 
    1246 
    12471145
    12481146  WRITE_FLAG( pcVPS->getRepFormatIdxPresentFlag( ) ? 1 : 0 , "rep_format_idx_present_flag" );
    12491147  if ( pcVPS->getRepFormatIdxPresentFlag() )
    12501148  {
    1251 #if H_MV_HLS_7_VPS_P0306_22
    12521149    WRITE_UVLC( pcVPS->getVpsNumRepFormatsMinus1( ), "vps_num_rep_formats_minus1" );
    1253 #else
    1254     WRITE_CODE( pcVPS->getVpsNumRepFormatsMinus1( ), 4, "vps_num_rep_formats_minus1" );
    1255 #endif
    12561150  }
    12571151
     
    12691163      if( pcVPS->getVpsNumRepFormatsMinus1() > 0 )
    12701164      {
    1271 #if H_MV_HLS_7_VPS_P0306_22
    12721165        WRITE_CODE( pcVPS->getVpsRepFormatIdx(i), pcVPS->getVpsRepFormatIdxLen(), "vps_rep_format_idx[i]" );
    1273 #else
    1274         WRITE_CODE( pcVPS->getVpsRepFormatIdx( i ), 8, "vps_rep_format_idx" );
    1275 #endif
    12761166      }
    12771167    }
     
    12891179    }
    12901180  }
    1291 #if H_MV_HLS_7_RESERVED_FLAGS
    12921181  WRITE_FLAG( 0, "vps_reserved_zero_flag" );
    1293 #endif
    12941182  codeDpbSize( pcVPS );
    12951183
     
    13211209    }
    13221210  } 
    1323 #if H_MV_HLS_7_VPS_P0307_23
    13241211  WRITE_UVLC( 0, "vps_non_vui_extension_length" );
    13251212  WRITE_FLAG( pcVPS->getVpsVuiPresentFlag() ? 1 : 0 , "vps_vui_present_flag" );
    1326 #endif
    1327 #if !H_MV_HLS_7_RESERVED_FLAGS 
    1328     WRITE_FLAG ( 0,                                      "vps_shvc_reserved_zero_flag" );
    1329 #endif
    1330     if( pcVPS->getVpsVuiPresentFlag() )
    1331     {
    1332       m_pcBitIf->writeAlignOne();  // vps_vui_alignment_bit_equal_to_one
    1333       codeVPSVUI( pcVPS );
    1334     }     
    1335 #if H_MV_HLS_7_FIX_INFER_CROSS_LAYER_IRAP_ALIGNED_FLAG
    1336     {
    1337       TComVPSVUI* pcVPSVUI = pcVPS->getVPSVUI( );
    1338       assert( pcVPSVUI );
    1339       pcVPSVUI->inferVpsVui( true );
    1340     }
    1341 #endif
    1342 }
     1213  if( pcVPS->getVpsVuiPresentFlag() )
     1214  {
     1215    m_pcBitIf->writeAlignOne();  // vps_vui_alignment_bit_equal_to_one
     1216    codeVPSVUI( pcVPS );
     1217  }     
     1218  {
     1219    TComVPSVUI* pcVPSVUI = pcVPS->getVPSVUI( );
     1220    assert( pcVPSVUI );
     1221    pcVPSVUI->inferVpsVui( true );
     1222  }
     1223}
     1224
    13431225Void TEncCavlc::codeVideoSignalInfo( TComVideoSignalInfo* pcVideoSignalInfo )
    13441226{
     
    13591241  { 
    13601242    WRITE_FLAG( dpbSize->getSubLayerFlagInfoPresentFlag( i ) ? 1 : 0 , "sub_layer_flag_info_present_flag" );
    1361 #if H_MV_HLS_7_HRD_P0156_7
    13621243    for( Int j = 0; j  <=  vps->getMaxSubLayersInLayerSetMinus1( i ); j++ )
    1363 #else
    1364     for( Int j = 0; j  <=  vps->getMaxTLayers() - 1 ; j++ )
    1365 #endif
    13661244    { 
    13671245      if( j > 0  &&  dpbSize->getSubLayerDpbInfoPresentFlag( i, j )  ) 
     
    13711249      if( dpbSize->getSubLayerDpbInfoPresentFlag( i, j ) )
    13721250      { 
    1373 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27
    13741251        for( Int k = 0; k < vps->getNumSubDpbs( vps->getLayerSetIdxForOutputLayerSet( i )); k++ )   
    1375 #else
    1376         for( Int k = 0; k < vps->getNumSubDpbs( vps->getOutputLayerSetIdxMinus1( i ) + 1 ); k++ )   // Preliminary fix does not match with spec
    1377 #endif
    13781252        {
    13791253          WRITE_UVLC( dpbSize->getMaxVpsDecPicBufferingMinus1( i, k, j ), "max_vps_dec_pic_buffering_minus1" );
     
    13951269        if ( j > 0 )
    13961270        {
    1397 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27
    13981271          for( Int k = 0; k < vps->getNumSubDpbs( vps->getLayerSetIdxForOutputLayerSet( i ) ); k++ )   
    1399 #else
    1400           for( Int k = 0; k < vps->getNumSubDpbs( vps->getOutputLayerSetIdxMinus1( i ) + 1 ); k++ )   
    1401 #endif
    14021272          {
    14031273            assert( dpbSize->getMaxVpsDecPicBufferingMinus1( i, k, j ) == dpbSize->getMaxVpsDecPicBufferingMinus1( i,k, j - 1 ) );
     
    14511321    WRITE_FLAG( pcVPSVUI->getCrossLayerIrapAlignedFlag( ) ? 1 : 0 , "cross_layer_irap_aligned_flag" );
    14521322  }
    1453 #if H_MV_HLS_7_MISC_P0068_21
    14541323  if( pcVPSVUI->getCrossLayerIrapAlignedFlag( ) )
    14551324  {
    14561325    WRITE_FLAG( pcVPSVUI->getAllLayersIdrAlignedFlag( ) ? 1 : 0 , "all_layers_idr_aligned_flag" );
    14571326  }
    1458 #endif
    14591327  WRITE_FLAG( pcVPSVUI->getBitRatePresentVpsFlag( ) ? 1 : 0 , "bit_rate_present_vps_flag" );
    14601328  WRITE_FLAG( pcVPSVUI->getPicRatePresentVpsFlag( ) ? 1 : 0 , "pic_rate_present_vps_flag" );
    14611329  if( pcVPSVUI->getBitRatePresentVpsFlag( )  ||  pcVPSVUI->getPicRatePresentVpsFlag( ) )
    14621330  {
    1463 #if H_MV_HLS_7_OUTPUT_LAYERS_5_10_22_27
    14641331    for( Int i = 0; i  <=  pcVPS->getVpsNumLayerSetsMinus1(); i++ )
    1465 #else
    1466     for( Int i = 0; i  <=  pcVPS->getVpsNumberLayerSetsMinus1(); i++ )
    1467 #endif
    14681332    {
    14691333      for( Int j = 0; j  <=  pcVPS->getMaxTLayers(); j++ )
     
    14911355  }
    14921356
    1493 #if H_MV_HLS_7_VPS_P0076_15
    14941357  WRITE_FLAG( pcVPSVUI->getVideoSignalInfoIdxPresentFlag( ) ? 1 : 0 , "video_signal_info_idx_present_flag" );
    14951358  if( pcVPSVUI->getVideoSignalInfoIdxPresentFlag() )
     
    15251388    }
    15261389  }
    1527 #endif
    15281390  WRITE_FLAG( pcVPSVUI->getTilesNotInUseFlag( ) ? 1 : 0 , "tiles_not_in_use_flag" );
    15291391  if( !pcVPSVUI->getTilesNotInUseFlag() )
     
    15601422    }
    15611423  }
    1562 #if H_MV_HLS_7_RESERVED_FLAGS
    15631424  WRITE_CODE( 0, 3, "vps_vui_reserved_zero_3bits" );
    1564 #endif
    15651425  WRITE_FLAG( pcVPSVUI->getIlpRestrictedRefLayersFlag( ) ? 1 : 0 , "ilp_restricted_ref_layers_flag" );
    15661426
     
    15841444  }
    15851445
    1586 #if !H_MV_HLS_7_VPS_P0076_15
    1587   WRITE_FLAG( pcVPSVUI->getVideoSignalInfoIdxPresentFlag( ) ? 1 : 0 , "video_signal_info_idx_present_flag" );
    1588   if( pcVPSVUI->getVideoSignalInfoIdxPresentFlag() )
    1589   {
    1590     WRITE_CODE( pcVPSVUI->getVpsNumVideoSignalInfoMinus1( ), 4, "vps_num_video_signal_info_minus1" );
    1591   }
    1592   else
    1593   {
    1594     pcVPSVUI->setVpsNumVideoSignalInfoMinus1( pcVPS->getMaxLayersMinus1() );
    1595   }
    1596 
    1597   for( Int i = 0; i <= pcVPSVUI->getVpsNumVideoSignalInfoMinus1(); i++ )
    1598   {
    1599     assert( pcVPSVUI->getVideoSignalInfo( i ) != NULL );
    1600     TComVideoSignalInfo* curVideoSignalInfo = pcVPSVUI->getVideoSignalInfo( i );
    1601     codeVideoSignalInfo( curVideoSignalInfo );     
    1602   }
    1603 
    1604   if( pcVPSVUI->getVideoSignalInfoIdxPresentFlag() && pcVPSVUI->getVpsNumVideoSignalInfoMinus1() > 0 )
    1605   {
    1606     for( Int i = 1; i <=  pcVPS->getMaxLayersMinus1(); i++ )
    1607     {
    1608       WRITE_CODE( pcVPSVUI->getVpsVideoSignalInfoIdx( i ), 4, "vps_video_signal_info_idx" );
    1609       assert( pcVPSVUI->getVpsVideoSignalInfoIdx( i ) >= 0 && pcVPSVUI->getVpsVideoSignalInfoIdx( i ) <= pcVPSVUI->getVpsNumVideoSignalInfoMinus1() );
    1610     }
    1611 }
    1612   else
    1613   {
    1614     for( Int i = 1; i <=  pcVPS->getMaxLayersMinus1(); i++ )
    1615     {
    1616       assert( pcVPSVUI->getVpsVideoSignalInfoIdx( i  ) == ( pcVPSVUI->getVideoSignalInfoIdxPresentFlag() ? 0 : i ) );
    1617     }
    1618   }
    1619 #endif
     1446
    16201447  WRITE_FLAG( pcVPSVUI->getVpsVuiBspHrdPresentFlag( ) ? 1 : 0 , "vps_vui_bsp_hrd_present_flag" );
    16211448  if ( pcVPSVUI->getVpsVuiBspHrdPresentFlag( ) )
     
    16231450    codeVpsVuiBspHrdParameters( pcVPS );
    16241451  }
    1625 #if H_MV_HLS_7_MISC_P0182_13
    16261452  for( Int i = 1; i  <=  pcVPS->getMaxLayersMinus1(); i++ )
    16271453  {
     
    16301456      WRITE_FLAG( pcVPSVUI->getBaseLayerParameterSetCompatibilityFlag( i ) ? 1 : 0 , "base_layer_parameter_set_compatibility_flag" );
    16311457    }
    1632 }
    1633 #endif
     1458  }
    16341459}
    16351460
     
    17051530        WRITE_FLAG( pcVPS->getIvMvPredFlag         ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]");
    17061531#if H_3D_SPIVMP
    1707 #if SEC_SPIVMP_MCP_SIZE_G0077
    17081532        WRITE_UVLC( pcVPS->getSubPULog2Size(i)-3, "log2_sub_PU_size_minus3[i]");
    1709 #else
    1710         WRITE_UVLC( pcVPS->getSubPULog2Size(i)-2, "log2_sub_PU_size_minus2[i]");
    1711 #endif
    17121533#endif
    17131534#endif
     
    17341555        if (i!=1)
    17351556        {
    1736 #if SEC_SPIVMP_MCP_SIZE_G0077
    17371557          WRITE_UVLC( pcVPS->getSubPULog2Size(i)-3, "log2_sub_PU_size_minus3[i]");
    1738 #else
    1739           WRITE_UVLC( pcVPS->getSubPULog2Size(i)-2, "log2_sub_PU_size_minus2[i]");
    1740 #endif
    17411558        }
    17421559#endif
     
    17711588    }
    17721589  }
    1773 #if QC_SPIVMP_MPI_G0119
    17741590  WRITE_UVLC( pcVPS->getSubPUMPILog2Size( ) - 3, "log2_sub_PU_MPI_size_minus3");
    1775 #endif
    17761591#if H_3D_TMVP
    17771592  WRITE_FLAG( pcVPS->getIvMvScalingFlag( ) ? 1 : 0 ,          "iv_mv_scaling_flag" );
     
    22352050#endif
    22362051
    2237 #if !H_MV_HLS_7_POC_P0041
    2238 #if PPS_FIX_DEPTH
    2239   if(pcSlice->getPPS()->getSliceHeaderExtensionPresentFlag() || pcSlice->getIsDepth() )
    2240 #else
    2241   if(pcSlice->getPPS()->getSliceHeaderExtensionPresentFlag())
    2242 #endif
    2243   {
    2244     WRITE_UVLC(0,"slice_header_extension_length");
    2245   }
    2246 #endif
    2247 
    2248 #if H_MV_HLS_7_POC_P0041
     2052
    22492053#if !H_MV
    22502054  if(pcSlice->getPPS()->getSliceHeaderExtensionPresentFlag())
     
    23542158  }
    23552159#endif
    2356 #endif
    23572160}
    23582161
     
    28242627
    28252628#if H_3D_INTER_SDC
    2826 #if QC_SDC_UNIFY_G0130
    28272629Void TEncCavlc::codeDeltaDC( TComDataCU* pcCU, UInt uiAbsPartIdx )
    28282630{
     
    28342636  assert(0);
    28352637}
    2836 #else
    2837 Void TEncCavlc::codeInterSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx )
    2838 {
    2839   assert(0);
    2840 }
    2841 
    2842 Void TEncCavlc::codeInterSDCResidualData  ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiSegment )
    2843 {
    2844   assert(0);
    2845 }
    2846 #endif
     2638
    28472639#endif
    28482640   
  • trunk/source/Lib/TLibEncoder/TEncCavlc.h

    r872 r884  
    133133#endif
    134134#if H_3D_INTER_SDC
    135 #if QC_SDC_UNIFY_G0130
    136135  Void codeDeltaDC       ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    137136  Void codeSDCFlag       ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    138 #else
    139   Void codeInterSDCFlag          ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    140   Void codeInterSDCResidualData  ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiSegment );
    141 #endif
    142137#endif
    143138#if H_3D_DBBP
  • trunk/source/Lib/TLibEncoder/TEncCfg.h

    r872 r884  
    347347
    348348  Bool      m_useStrongIntraSmoothing;                        ///< enable the use of strong intra smoothing (bi_linear interpolation) for 32x32 blocks when reference samples are flat.
    349 #if H_MV_HLS_7_SEI_P0204_26
     349#if H_MV
    350350  Bool              m_subBistreamPropSEIEnabled;
    351351  Int               m_numAdditionalSubStreams;
     
    397397#if H_3D_SPIVMP
    398398  Int      m_iSubPULog2Size;
    399 #endif
    400 #if QC_SPIVMP_MPI_G0119
    401399  Int      m_iSubPUMPILog2Size;
    402400#endif
     
    507505  Int        getSubPULog2Size                   ()                   { return m_iSubPULog2Size;}
    508506  Void       setSubPULog2Size                   (Int u)              { m_iSubPULog2Size = u; }     
    509 #endif
    510 #if QC_SPIVMP_MPI_G0119
    511507  Int        getSubPUMPILog2Size            ()               { return m_iSubPUMPILog2Size;}
    512508  Void       setSubPUMPILog2Size            (Int u)          { m_iSubPUMPILog2Size = u;   }     
     
    789785  Int   getScalableNestingSEIEnabled()                     { return m_scalableNestingSEIEnabled; }
    790786
    791 #if H_MV_HLS_7_SEI_P0204_26
     787#if H_MV
    792788  Bool   getSubBitstreamPropSEIEnabled()        { return m_subBistreamPropSEIEnabled;}
    793789  Void   setSubBitstreamPropSEIEnabled(Bool x)  { m_subBistreamPropSEIEnabled = x;}
  • trunk/source/Lib/TLibEncoder/TEncCu.cpp

    r872 r884  
    547547          bTryNx2N  = false;
    548548          bTry2NxN  = false;
    549 #if MTK_TEX_DEP_PAR_G0055
    550549          if( pcTextureCU->getDepth(uiCUIdx) == uiDepth && pcTextureCU->getPartitionSize(uiCUIdx) != SIZE_2Nx2N)
    551550          {
     
    555554              bTryNx2N  = true;
    556555          }
    557 #endif
    558556        }
    559557      }
     
    582580          if (rpcTempCU->getSlice()->getIsDepth() )
    583581          {
    584 #if SEC_DEPTH_DV_DERIVAITON_G0074
    585582            DvInfo.bDV = rpcTempCU->getDispforDepth(0, 0, &DvInfo);
    586 #else
    587             DvInfo.bDV = rpcTempCU->getDispNeighBlocks(0, 0, &DvInfo);
    588 #endif
    589583          }
    590584          else
     
    15331527#endif
    15341528    m_pcEntropyCoder->encodeMergeIndex( pcCU, uiAbsPartIdx );
    1535 #if !SEC_IC_ARP_SIG_G0072
     1529#if H_3D_ARP
     1530    m_pcEntropyCoder->encodeARPW( pcCU , uiAbsPartIdx );
     1531#endif
    15361532#if H_3D_IC
    15371533    m_pcEntropyCoder->encodeICFlag  ( pcCU, uiAbsPartIdx );
    15381534#endif
    1539 #endif
    1540 #if H_3D_ARP
    1541     m_pcEntropyCoder->encodeARPW( pcCU , uiAbsPartIdx );
    1542 #endif
    1543 #if SEC_IC_ARP_SIG_G0072
    1544 #if H_3D_IC
    1545     m_pcEntropyCoder->encodeICFlag  ( pcCU, uiAbsPartIdx );
    1546 #endif
    1547 #endif
    15481535    finishCU(pcCU,uiAbsPartIdx,uiDepth);
    15491536    return;
     
    15531540  m_pcEntropyCoder->encodePartSize( pcCU, uiAbsPartIdx, uiDepth );
    15541541 
    1555 #if QC_SDC_UNIFY_G0130
     1542#if H_3D_DIM_SDC
    15561543  m_pcEntropyCoder->encodeSDCFlag( pcCU, uiAbsPartIdx, false );
    15571544#endif
     
    15701557  // prediction Info ( Intra : direction mode, Inter : Mv, reference idx )
    15711558  m_pcEntropyCoder->encodePredInfo( pcCU, uiAbsPartIdx );
    1572 #if !SEC_IC_ARP_SIG_G0072
     1559
     1560#if H_3D_ARP
     1561  m_pcEntropyCoder->encodeARPW( pcCU , uiAbsPartIdx );
     1562#endif
    15731563#if H_3D_IC
    15741564  m_pcEntropyCoder->encodeICFlag  ( pcCU, uiAbsPartIdx );
    15751565#endif
    1576 #endif
    1577 #if H_3D_ARP
    1578   m_pcEntropyCoder->encodeARPW( pcCU , uiAbsPartIdx );
    1579 #endif
    1580 #if SEC_IC_ARP_SIG_G0072
    1581 #if H_3D_IC
    1582   m_pcEntropyCoder->encodeICFlag  ( pcCU, uiAbsPartIdx );
    1583 #endif
    1584 #endif
    1585 #if H_3D_INTER_SDC && !QC_SDC_UNIFY_G0130
    1586   m_pcEntropyCoder->encodeInterSDCFlag( pcCU, uiAbsPartIdx, false );
    1587 #endif
    1588 
    15891566  // Encode Coefficients
    15901567  Bool bCodeDQP = getdQPFlag();
     
    18091786#if H_3D_ARP
    18101787  Int nARPWMax = rpcTempCU->getSlice()->getARPStepNum() - 1;
    1811 #if SEC_IC_ARP_SIG_G0072
    18121788  if( nARPWMax < 0 || !rpcTempCU->getDvInfo(0).bDV || bICFlag )
    1813 #else
    1814   if( nARPWMax < 0 || !rpcTempCU->getDvInfo(0).bDV )
    1815 #endif
    18161789  {
    18171790    nARPWMax = 0;
     
    18211794    memset( mergeCandBuffer, 0, MRG_MAX_NUM_CANDS_MEM*sizeof(Int) );
    18221795    rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to LCU level
    1823 #if !UPDATE_HM13
    1824     rpcTempCU->setCUTransquantBypassSubParts( m_pcEncCfg->getCUTransquantBypassFlagValue(), 0, uhDepth );
    1825 #endif
    18261796    rpcTempCU->setARPWSubParts( (UChar)nARPW , 0 , uhDepth );
    18271797#if H_3D_IC
     
    18561826#endif
    18571827
    1858 #if MTK_DDD_G0063
     1828#if H_3D_DDD
    18591829    Int iDDDCand = rpcTempCU->getUseDDDCandIdx();
    18601830    UChar ucDDDepth = rpcTempCU->getDDTmpDepth();
     
    18951865          rpcTempCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeCand].m_acDvInfo, 0, 0, uhDepth );
    18961866#endif
    1897 #if MTK_DDD_G0063
     1867#if H_3D_DDD
    18981868          if( rpcTempCU->getSlice()->getIsDepth() && rpcTempCU->getSlice()->getViewIndex() != 0 && iDDDCand == uiMergeCand )
    18991869          {
     
    19251895          else
    19261896#endif
    1927 #if NTT_STORE_SPDV_VSP_G0148
    1928             {
     1897#if H_3D_VSP
     1898          {
    19291899          if ( vspFlag[uiMergeCand] )
    19301900          {
     
    19591929            rpcTempCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level
    19601930            rpcTempCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], SIZE_2Nx2N, 0, 0 ); // interprets depth relative to rpcTempCU level
    1961 #if NTT_STORE_SPDV_VSP_G0148
     1931#if H_3D_VSP
    19621932          }
    19631933        }
     
    19921962
    19931963          rpcTempCU->setSkipFlagSubParts( rpcTempCU->getQtRootCbf(0) == 0, 0, uhDepth );
    1994 #if NTT_STORE_SPDV_VSP_G0148 // possible bug fix
     1964#if H_3D_VSP // possible bug fix
    19951965          if( rpcTempCU->getSkipFlag(0) )
    19961966          {
     
    20071977          if( rpcTempCU->getSlice()->getVPS()->getInterSDCFlag( rpcTempCU->getSlice()->getLayerIdInVps() ) && rpcTempCU->getSlice()->getIsDepth() && !uiNoResidual )
    20081978          {
    2009 #if SEC_INTER_SDC_G0101
    20101979            for( Int uiOffest = -2 ; uiOffest <= 2 ; uiOffest++ )
    20111980            {
     
    20392008              xCheckBestMode( rpcBestCU, rpcTempCU, uhDepth );
    20402009            }
    2041 #else
    2042             if( rpcTempCU != rpcTempCUPre )
    2043             {
    2044               rpcTempCU->initEstData( uhDepth, orgQP, bTransquantBypassFlag  );
    2045               rpcTempCU->copyPartFrom( rpcBestCU, 0, uhDepth );
    2046             }
    2047             rpcTempCU->setSkipFlagSubParts( false, 0, uhDepth );
    2048             rpcTempCU->setTrIdxSubParts( 0, 0, uhDepth );
    2049             rpcTempCU->setCbfSubParts( 1, 1, 1, 0, uhDepth );
    2050 #if H_3D_VSO //M2
    2051             if( m_pcRdCost->getUseRenModel() )
    2052             { //Reset
    2053               UInt  uiWidth     = m_ppcOrigYuv[uhDepth]->getWidth    ();
    2054               UInt  uiHeight    = m_ppcOrigYuv[uhDepth]->getHeight   ();
    2055               Pel*  piSrc       = m_ppcOrigYuv[uhDepth]->getLumaAddr ();
    2056               UInt  uiSrcStride = m_ppcOrigYuv[uhDepth]->getStride   ();
    2057               m_pcRdCost->setRenModelData( rpcTempCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight );
    2058             }
    2059 #endif
    2060             m_pcPredSearch->encodeResAndCalcRdInterSDCCU( rpcTempCU,
    2061               m_ppcOrigYuv[uhDepth],
    2062               ( rpcTempCU != rpcTempCUPre ) ? m_ppcPredYuvBest[uhDepth] : m_ppcPredYuvTemp[uhDepth],
    2063               m_ppcResiYuvTemp[uhDepth],
    2064               m_ppcRecoYuvTemp[uhDepth],
    2065               uhDepth );
    2066 
    2067             xCheckDQP( rpcTempCU );
    2068             xCheckBestMode( rpcBestCU, rpcTempCU, uhDepth );
    2069 #endif
    20702010          }
    20712011#endif
     
    21422082{
    21432083
    2144 #if UPDATE_HM13
    21452084#if H_3D
    21462085  const Bool bTransquantBypassFlag = rpcTempCU->getCUTransquantBypass(0);
    2147 #endif
    21482086#endif
    21492087#if  H_3D_FAST_TEXTURE_ENCODING
     
    21572095  Int nARPWMax    = rpcTempCU->getSlice()->getARPStepNum() - 1;
    21582096
    2159 #if SEC_IC_ARP_SIG_G0072
    21602097  if( nARPWMax < 0 || ePartSize != SIZE_2Nx2N || !rpcTempCU->getDvInfo(0).bDV || rpcTempCU->getICFlag(0) )
    2161 #else
    2162   if( nARPWMax < 0 || ePartSize != SIZE_2Nx2N || !rpcTempCU->getDvInfo(0).bDV  )
    2163 #endif
    21642098  {
    21652099    nARPWMax = 0;
     
    21702104    if( bFirstTime == false && rpcTempCU->getSlice()->getVPS()->getUseAdvRP( iLayerId ) )
    21712105    {
    2172 #if UPDATE_HM13
    21732106      rpcTempCU->initEstData( rpcTempCU->getDepth(0), rpcTempCU->getQP(0),bTransquantBypassFlag );     
    2174 #else
    2175       rpcTempCU->initEstData( rpcTempCU->getDepth(0), rpcTempCU->getQP(0) );
    2176 #endif
    21772107    }
    21782108#endif
     
    21942124  rpcTempCU->setPartSizeSubParts  ( ePartSize,  0, uhDepth );
    21952125  rpcTempCU->setPredModeSubParts  ( MODE_INTER, 0, uhDepth );
    2196 #if MTK_DDD_G0063
     2126#if H_3D_DDD
    21972127  rpcTempCU->setUseDDD( false, 0, uhDepth );
    21982128#endif
     
    22562186#endif
    22572187  m_pcPredSearch->encodeResAndCalcRdInterCU( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcResiYuvBest[uhDepth], m_ppcRecoYuvTemp[uhDepth], false );
    2258 #if NTT_STORE_SPDV_VSP_G0148 // possible bug fix
     2188#if H_3D_VSP // possible bug fix
    22592189  if( rpcTempCU->getQtRootCbf(0)==0 )
    22602190  {
     
    22762206  xCheckBestMode(rpcBestCU, rpcTempCU, uhDepth);
    22772207#if H_3D_INTER_SDC
    2278 #if SEC_INTER_SDC_G0101 // ONLY_2NX2N_SDC
    22792208  if( rpcTempCU->getSlice()->getVPS()->getInterSDCFlag( rpcTempCU->getSlice()->getLayerIdInVps() ) && rpcTempCU->getSlice()->getIsDepth() && ePartSize == SIZE_2Nx2N)
    2280 #else
    2281   if( rpcTempCU->getSlice()->getVPS()->getInterSDCFlag( rpcTempCU->getSlice()->getLayerIdInVps() ) && rpcTempCU->getSlice()->getIsDepth() )
    2282 #endif
    2283   {
    2284 #if SEC_INTER_SDC_G0101
     2209  {
    22852210    for( Int uiOffest = -2 ; uiOffest <= 2 ; uiOffest++ )
    22862211    {
     
    22882213      {
    22892214        Int orgQP = rpcBestCU->getQP( 0 );
    2290 #if UPDATE_HM13
    22912215        rpcTempCU->initEstData( uhDepth, orgQP ,bTransquantBypassFlag );     
    2292 #else
    2293         rpcTempCU->initEstData( uhDepth, orgQP );
    2294 #endif
    22952216        rpcTempCU->copyPartFrom( rpcBestCU, 0, uhDepth );
    22962217      }
     
    23202241      xCheckBestMode(rpcBestCU, rpcTempCU, uhDepth);
    23212242    }
    2322 #else
    2323     if( rpcTempCU != rpcTempCUPre )
    2324     {
    2325       Int orgQP = rpcBestCU->getQP( 0 );
    2326       rpcTempCU->initEstData( uhDepth, orgQP );
    2327       rpcTempCU->copyPartFrom( rpcBestCU, 0, uhDepth );
    2328     }
    2329     rpcTempCU->setSkipFlagSubParts( false, 0, uhDepth );
    2330     rpcTempCU->setTrIdxSubParts( 0, 0, uhDepth );
    2331     rpcTempCU->setCbfSubParts( 1, 1, 1, 0, uhDepth );
    2332 #if H_3D_VSO // M3
    2333     if( m_pcRdCost->getUseRenModel() )
    2334     {
    2335       UInt  uiWidth     = m_ppcOrigYuv[uhDepth]->getWidth ( );
    2336       UInt  uiHeight    = m_ppcOrigYuv[uhDepth]->getHeight( );
    2337       Pel*  piSrc       = m_ppcOrigYuv[uhDepth]->getLumaAddr( );
    2338       UInt  uiSrcStride = m_ppcOrigYuv[uhDepth]->getStride();
    2339       m_pcRdCost->setRenModelData( rpcTempCU, 0, piSrc, uiSrcStride, uiWidth, uiHeight );
    2340     }
    2341 #endif
    2342 
    2343     m_pcPredSearch->encodeResAndCalcRdInterSDCCU( rpcTempCU,
    2344       m_ppcOrigYuv[uhDepth],
    2345       ( rpcTempCU != rpcTempCUPre ) ? m_ppcPredYuvBest[uhDepth] : m_ppcPredYuvTemp[uhDepth],
    2346       m_ppcResiYuvTemp[uhDepth],
    2347       m_ppcRecoYuvTemp[uhDepth],
    2348       uhDepth );
    2349 
    2350   xCheckDQP( rpcTempCU );
    2351   xCheckBestMode(rpcBestCU, rpcTempCU, uhDepth);
    2352 #endif
     2243
    23532244  }
    23542245#endif
     
    25932484  m_pcEntropyCoder->encodePredMode( rpcTempCU, 0,          true );
    25942485  m_pcEntropyCoder->encodePartSize( rpcTempCU, 0, uiDepth, true );
    2595 #if QC_SDC_UNIFY_G0130
     2486#if H_3D_DIM_SDC
    25962487  m_pcEntropyCoder->encodeSDCFlag( rpcTempCU, 0, true );
    25972488#endif
     
    26502541  m_pcEntropyCoder->encodePredMode ( rpcTempCU, 0,          true );
    26512542  m_pcEntropyCoder->encodePartSize ( rpcTempCU, 0, uiDepth, true );
    2652 #if QC_SDC_UNIFY_G0130
     2543#if H_3D_DIM_SDC
    26532544  m_pcEntropyCoder->encodeSDCFlag( rpcTempCU, 0, true );
    26542545#endif
  • trunk/source/Lib/TLibEncoder/TEncEntropy.cpp

    r872 r884  
    151151Void TEncEntropy::encodeICFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
    152152{
    153 #if SEC_IC_ARP_SIG_G0072
    154153  if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() || pcCU->getARPW( uiAbsPartIdx ) > 0 )
    155 #else
    156   if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() )
    157 #endif
    158154  {
    159155    return;
     
    670666  UInt uiLumaOffset   = uiMinCoeffSize*uiAbsPartIdx;
    671667  UInt uiChromaOffset = uiLumaOffset>>2;
    672 #if QC_SDC_UNIFY_G0130
    673668#if H_3D_DIM_SDC
    674669  if( pcCU->getSDCFlag( uiAbsPartIdx ) && pcCU->isIntra( uiAbsPartIdx ) )
     
    680675    assert( pcCU->getCbf(uiAbsPartIdx, TEXT_CHROMA_V) == 1 );
    681676  }
    682 #endif
    683 
    684 #if H_3D_INTER_SDC
     677
    685678  if( pcCU->getSDCFlag( uiAbsPartIdx ) && !pcCU->isIntra( uiAbsPartIdx ) )
    686679  {
     
    689682    assert( pcCU->getSlice()->getIsDepth() );
    690683  }
    691 #endif
    692 #if QC_SDC_UNIFY_G0130_FIX
     684
    693685  if( pcCU->getSlice()->getIsDepth() && ( pcCU->getSDCFlag( uiAbsPartIdx ) || pcCU->isIntra( uiAbsPartIdx ) ) )
    694 #else
    695   if( pcCU->getSDCFlag( uiAbsPartIdx ) || pcCU->isIntra( uiAbsPartIdx ) )
    696 #endif
    697686  {
    698687    Int iPartNum = ( pcCU->isIntra( uiAbsPartIdx ) && pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_NxN ) ? 4 : 1;
     
    715704    }
    716705  }
    717 #else
    718 #if H_3D_DIM_SDC
    719   if( pcCU->getSDCFlag( uiAbsPartIdx ) )
    720   {
    721     assert( pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2Nx2N );
    722     assert( pcCU->getTransformIdx(uiAbsPartIdx) == 0 );
    723     assert( pcCU->getCbf(uiAbsPartIdx, TEXT_LUMA) == 1 );
    724     assert( pcCU->getCbf(uiAbsPartIdx, TEXT_CHROMA_U) == 1 );
    725     assert( pcCU->getCbf(uiAbsPartIdx, TEXT_CHROMA_V) == 1 );
    726     return;
    727   }
    728 #endif
    729 
    730 #if H_3D_INTER_SDC
    731   if( pcCU->getInterSDCFlag( uiAbsPartIdx ) )
    732   {
    733     assert( !pcCU->isSkipped( uiAbsPartIdx ) );
    734     assert( !pcCU->isIntra( uiAbsPartIdx) );
    735     assert( pcCU->getSlice()->getIsDepth() );
    736 
    737     encodeInterSDCResidualData( pcCU, uiAbsPartIdx, false );
    738     return;
    739   }
    740 #endif
    741706#endif
    742707
     
    799764
    800765#if H_3D_INTER_SDC
    801 #if QC_SDC_UNIFY_G0130
    802766Void TEncEntropy::encodeDeltaDC  ( TComDataCU* pcCU, UInt absPartIdx )
    803767{
     
    813777  }
    814778
    815 #if SEC_INTER_SDC_G0101
    816779  if( !pcCU->getSlice()->getIsDepth() || pcCU->getPartitionSize( uiAbsPartIdx ) != SIZE_2Nx2N || pcCU->isSkipped( uiAbsPartIdx ) )
    817 #else
    818   if( !pcCU->getSlice()->getIsDepth() || ( pcCU->isIntra( uiAbsPartIdx ) && pcCU->getPartitionSize( uiAbsPartIdx ) != SIZE_2Nx2N ) || pcCU->isSkipped( uiAbsPartIdx ) )
    819 #endif
    820   {
    821     return;
    822   }
    823 
    824 #if SEC_INTER_SDC_G0101
     780  {
     781    return;
     782  }
     783
    825784  assert( pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_2Nx2N || ( !pcCU->isIntra( uiAbsPartIdx ) && !pcCU->isSkipped( uiAbsPartIdx ) ) );
    826 #else
    827   assert( ( pcCU->isIntra( uiAbsPartIdx ) && pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_2Nx2N ) || ( !pcCU->isIntra( uiAbsPartIdx ) && !pcCU->isSkipped( uiAbsPartIdx ) ) );
    828 #endif
    829785
    830786  if( bRD )
     
    835791  m_pcEntropyCoderIf->codeSDCFlag( pcCU, uiAbsPartIdx );
    836792}
    837 #else
    838 Void TEncEntropy::encodeInterSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
    839 {
    840   if( !pcCU->getSlice()->getVPS()->getInterSDCFlag( pcCU->getSlice()->getLayerIdInVps() ) )
    841   {
    842     return;
    843   }
    844 
    845   if( !pcCU->getSlice()->getIsDepth() || pcCU->isIntra( uiAbsPartIdx ) || pcCU->isSkipped( uiAbsPartIdx ) )
    846   {
    847     return;
    848   }
    849 
    850   if( bRD )
    851   {
    852     uiAbsPartIdx = 0;
    853   }
    854 
    855   m_pcEntropyCoderIf->codeInterSDCFlag( pcCU, uiAbsPartIdx );
    856 }
    857 
    858 Void TEncEntropy::encodeInterSDCResidualData( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
    859 {
    860   if( !pcCU->getSlice()->getVPS()->getInterSDCFlag( pcCU->getSlice()->getLayerIdInVps() ) )
    861   {
    862     return;
    863   }
    864 
    865   if( !pcCU->getSlice()->getIsDepth() || pcCU->isIntra( uiAbsPartIdx ) || !pcCU->getInterSDCFlag( uiAbsPartIdx ) )
    866   {
    867     return;
    868   }
    869 
    870   if( bRD )
    871   {
    872     uiAbsPartIdx = 0;
    873   }
    874 
    875   // number of segments depends on prediction mode for INTRA
    876   UInt uiNumSegments = ( pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_2Nx2N ) ? 1 : ( pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_NxN ? 4 : 2 );
    877 
    878   // encode residual data for each segment
    879   for( UInt uiSeg = 0; uiSeg < uiNumSegments; uiSeg++ )
    880   {
    881     m_pcEntropyCoderIf->codeInterSDCResidualData( pcCU, uiAbsPartIdx, uiSeg );
    882   }
    883 }
    884 #endif
     793
    885794#endif
    886795#if H_3D_DBBP
  • trunk/source/Lib/TLibEncoder/TEncEntropy.h

    r872 r884  
    9595#endif
    9696#if H_3D_INTER_SDC
    97 #if QC_SDC_UNIFY_G0130
    9897  virtual Void codeDeltaDC       ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
    9998  virtual Void codeSDCFlag       ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
    100 #else
    101   virtual Void codeInterSDCFlag  ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
    102   virtual Void codeInterSDCResidualData ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiSegment ) = 0;
    103 #endif
    10499#endif
    105100#if H_3D_DBBP
     
    190185#endif
    191186#if H_3D_INTER_SDC
    192 #if QC_SDC_UNIFY_G0130
    193187  Void encodeDeltaDC      ( TComDataCU* pcCU, UInt absPartIdx );
    194188  Void encodeSDCFlag      ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false );
    195 #else
    196   Void encodeInterSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false );
    197   Void encodeInterSDCResidualData( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD );
    198 #endif
    199189#endif
    200190#if H_3D_DBBP
  • trunk/source/Lib/TLibEncoder/TEncGOP.cpp

    r872 r884  
    296296}
    297297
    298 #if H_MV_HLS_7_SEI_P0204_26
     298#if H_MV
    299299SEISubBitstreamProperty *TEncGOP::xCreateSEISubBitstreamProperty( TComSPS *sps)
    300300{
     
    365365    delete sei;
    366366  }
    367 #if H_MV_HLS_7_SEI_P0204_26
     367#if H_MV
    368368  if( m_pcCfg->getSubBitstreamPropSEIEnabled() )
    369369  {
  • trunk/source/Lib/TLibEncoder/TEncGOP.h

    r872 r884  
    212212
    213213  SEIToneMappingInfo*     xCreateSEIToneMappingInfo();
    214 #if H_MV_HLS_7_SEI_P0204_26
     214#if H_MV
    215215  SEISubBitstreamProperty *xCreateSEISubBitstreamProperty( TComSPS *sps);
    216216#endif
  • trunk/source/Lib/TLibEncoder/TEncSbac.cpp

    r872 r884  
    9292, m_cDdcFlagSCModel           ( 1,             1,               NUM_DDC_FLAG_CTX              , m_contextModels + m_numContextModels, m_numContextModels)
    9393, m_cDdcDataSCModel           ( 1,             1,               NUM_DDC_DATA_CTX              , m_contextModels + m_numContextModels, m_numContextModels)
    94 #if QC_GENERIC_SDC_G0122
    9594, m_cAngleFlagSCModel         ( 1,             1,               NUM_ANGLE_FLAG_CTX            , m_contextModels + m_numContextModels, m_numContextModels)
    96 #if !QC_SDC_UNIFY_G0130
    97 , m_cIntraSdcFlagSCModel      ( 1,             1,               NUM_INTRASDC_FLAG_CTX         , m_contextModels + m_numContextModels, m_numContextModels)
    98 #endif
    99 #endif
    10095#if H_3D_DIM_DMM
    10196, m_cDmm1DataSCModel          ( 1,             1,               NUM_DMM1_DATA_CTX             , m_contextModels + m_numContextModels, m_numContextModels)
     
    106101#endif
    107102#endif
    108 #if H_3D_INTER_SDC && !QC_SDC_UNIFY_G0130
    109 , m_cInterSDCFlagSCModel             ( 1,             1,  NUM_INTER_SDC_FLAG_CTX           , m_contextModels + m_numContextModels, m_numContextModels)
    110 , m_cInterSDCResidualSCModel         ( 1,             1,  NUM_INTER_SDC_RESIDUAL_CTX       , m_contextModels + m_numContextModels, m_numContextModels)
    111 , m_cInterSDCResidualSignFlagSCModel ( 1,             1,  NUM_INTER_SDC_SIGN_FLAG_CTX      , m_contextModels + m_numContextModels, m_numContextModels)
    112 #endif
    113 #if QC_SDC_UNIFY_G0130
     103#if H_3D_DIM_SDC
    114104, m_cSDCFlagSCModel                  ( 1,             1,  NUM_SDC_FLAG_CTX                 , m_contextModels + m_numContextModels, m_numContextModels)
    115105#endif
     
    178168  m_cDdcFlagSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_DDC_FLAG );
    179169  m_cDdcDataSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_DDC_DATA );
    180 #if QC_GENERIC_SDC_G0122
    181170  m_cAngleFlagSCModel.initBuffer         ( eSliceType, iQp, (UChar*)INIT_ANGLE_FLAG );
    182 #if !QC_SDC_UNIFY_G0130
    183   m_cIntraSdcFlagSCModel.initBuffer      ( eSliceType, iQp, (UChar*)INIT_INTRASDC_FLAG );
    184 #endif
    185 #endif
    186171#if H_3D_DIM_DMM
    187172  m_cDmm1DataSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA );
     
    192177#endif
    193178#endif
    194 #if H_3D_INTER_SDC && !QC_SDC_UNIFY_G0130
    195   m_cInterSDCFlagSCModel.initBuffer         ( eSliceType, iQp, (UChar*)INIT_INTER_SDC_FLAG );
    196   m_cInterSDCResidualSCModel.initBuffer     ( eSliceType, iQp, (UChar*)INIT_INTER_SDC_RESIDUAL );
    197   m_cInterSDCResidualSignFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_INTER_SDC_SIGN_FLAG );
    198 #endif
    199 #if QC_SDC_UNIFY_G0130
     179#if H_3D_DIM_SDC
    200180  m_cSDCFlagSCModel.initBuffer              ( eSliceType, iQp, (UChar*)INIT_SDC_FLAG );
    201181#endif
     
    240220      curCost += m_cCUICFlagSCModel.calcCost          ( curSliceType, qp, (UChar*)INIT_IC_FLAG );
    241221#endif
    242 #if H_3D_INTER_SDC && !QC_SDC_UNIFY_G0130
    243       curCost += m_cInterSDCFlagSCModel.calcCost      ( curSliceType, qp, (UChar*)INIT_INTER_SDC_FLAG );
    244       curCost += m_cInterSDCResidualSCModel.calcCost  ( curSliceType, qp, (UChar*)INIT_INTER_SDC_RESIDUAL );
    245       curCost += m_cInterSDCResidualSignFlagSCModel.calcCost( curSliceType, qp, (UChar*)INIT_INTER_SDC_SIGN_FLAG );
    246 #endif
    247 #if QC_SDC_UNIFY_G0130
     222#if H_3D_DIM_SDC
    248223      curCost += m_cSDCFlagSCModel.calcCost           ( curSliceType, qp, (UChar*)INIT_SDC_FLAG );
    249224#endif
     
    279254      curCost += m_cDdcFlagSCModel.calcCost           ( curSliceType, qp, (UChar*)INIT_DDC_FLAG );
    280255      curCost += m_cDdcDataSCModel.calcCost           ( curSliceType, qp, (UChar*)INIT_DDC_DATA );
    281 #if QC_GENERIC_SDC_G0122
    282256      curCost += m_cAngleFlagSCModel.calcCost         ( curSliceType, qp, (UChar*)INIT_ANGLE_FLAG ); 
    283 #if !QC_SDC_UNIFY_G0130
    284       curCost += m_cIntraSdcFlagSCModel.calcCost      ( curSliceType, qp, (UChar*)INIT_INTRASDC_FLAG ); 
    285 #endif
    286 #endif
    287257#if H_3D_DIM_DMM
    288258      curCost += m_cDmm1DataSCModel.calcCost          ( curSliceType, qp, (UChar*)INIT_DMM1_DATA );
     
    348318  m_cDdcFlagSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_DDC_FLAG );
    349319  m_cDdcDataSCModel.initBuffer           ( eSliceType, iQp, (UChar*)INIT_DDC_DATA );
    350 #if QC_GENERIC_SDC_G0122
    351320  m_cAngleFlagSCModel.initBuffer         ( eSliceType, iQp, (UChar*)INIT_ANGLE_FLAG );
    352 #if !QC_SDC_UNIFY_G0130
    353   m_cIntraSdcFlagSCModel.initBuffer      ( eSliceType, iQp, (UChar*)INIT_INTRASDC_FLAG );
    354 #endif
    355 #endif
    356321#if H_3D_DIM_DMM
    357322  m_cDmm1DataSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_DMM1_DATA );
     
    362327#endif
    363328#endif
    364 #if H_3D_INTER_SDC && !QC_SDC_UNIFY_G0130
    365   m_cInterSDCFlagSCModel.initBuffer         ( eSliceType, iQp, (UChar*)INIT_INTER_SDC_FLAG );
    366   m_cInterSDCResidualSCModel.initBuffer     ( eSliceType, iQp, (UChar*)INIT_INTER_SDC_RESIDUAL );
    367   m_cInterSDCResidualSignFlagSCModel.initBuffer ( eSliceType, iQp, (UChar*)INIT_INTER_SDC_SIGN_FLAG );
    368 #endif
    369 #if QC_SDC_UNIFY_G0130
     329#if H_3D_DIM_SDC
    370330  m_cSDCFlagSCModel.initBuffer              ( eSliceType, iQp, (UChar*)INIT_SDC_FLAG );
    371331#endif
     
    672632  this->m_cDepthIntraModeSCModel .copyFrom( &pSrc->m_cDepthIntraModeSCModel );
    673633  this->m_cDdcFlagSCModel        .copyFrom( &pSrc->m_cDdcFlagSCModel );
    674 #if QC_GENERIC_SDC_G0122
    675634  this->m_cAngleFlagSCModel      .copyFrom( &pSrc->m_cAngleFlagSCModel );
    676 #if !QC_SDC_UNIFY_G0130
    677   this->m_cIntraSdcFlagSCModel   .copyFrom( &pSrc->m_cIntraSdcFlagSCModel );
    678 #endif
    679 #endif
    680635}
    681636#endif
     
    728683  Bool rapPic     = (pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_W_RADL || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_IDR_N_LP || pcCU->getSlice()->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA);
    729684
    730 #if MTK_TEX_DEP_PAR_G0055
    731685  Bool depthDependent = false;
    732686  UInt uiTexturePart = eSize;
    733 #endif
    734687  if(bDepthMapDetect && !bIntraSliceDetect && !rapPic && pcCU->getPic()->getReduceBitsFlag() && sps->getUseQTL() && sps->getUsePC() )
    735688  {
     
    737690    UInt uiCUIdx            = (pcCU->getZorderIdxInCU() == 0) ? uiAbsPartIdx : pcCU->getZorderIdxInCU();
    738691    assert(pcTextureCU->getDepth(uiCUIdx) >= uiDepth);
    739 #if !MTK_TEX_DEP_PAR_G0055
    740     if (pcTextureCU->getDepth(uiCUIdx) == uiDepth && pcTextureCU->getPartitionSize( uiCUIdx ) != SIZE_NxN)
    741 #else
    742692    if(pcTextureCU->getDepth(uiCUIdx) == uiDepth )
    743693    {
     
    746696    }
    747697    if (pcTextureCU->getDepth(uiCUIdx) == uiDepth && pcTextureCU->getPartitionSize( uiCUIdx ) == SIZE_2Nx2N)
    748 #endif
    749698    {
    750699      assert( eSize == SIZE_2Nx2N );
     
    768717  DTRACE_CU("part_mode", eSize )
    769718#endif       
    770 #if MTK_TEX_DEP_PAR_G0055
     719#if H_3D_QTLPC
    771720    if (depthDependent==false || uiTexturePart == SIZE_NxN|| uiTexturePart == SIZE_2Nx2N)
    772721    {
     
    838787    }
    839788  }
    840 #if MTK_TEX_DEP_PAR_G0055
     789#if H_3D_QTLPC
    841790    }
    842791    else if(uiTexturePart == SIZE_2NxN || uiTexturePart == SIZE_2NxnU || uiTexturePart == SIZE_2NxnD)
     
    1050999  if( nBinNum > 1 )
    10511000  {
    1052 #if MTK_ARP_FLAG_CABAC_SIMP_G0061
    10531001     m_pcBinIf->encodeBin( ( iW == iMaxW ) ? 1 : 0, m_cCUPUARPWSCModel.get( 0, 0, 2 ) );
    1054 #else
    1055      m_pcBinIf->encodeBin( ( iW == iMaxW ) ? 1 : 0, m_cCUPUARPWSCModel.get( 0, 0, 3 ) );
    1056 #endif
    10571002  }
    10581003#if H_MV_ENC_DEC_TRAC
     
    10721017  // get context function is here
    10731018  UInt uiSymbol = pcCU->getICFlag( uiAbsPartIdx ) ? 1 : 0;
    1074 #if MTK_IC_FLAG_CABAC_SIMP_G0061
    10751019  m_pcBinIf->encodeBin( uiSymbol, m_cCUICFlagSCModel.get( 0, 0, 0 ) );
    1076 #else
    1077   UInt uiCtxIC  = pcCU->getCtxICFlag( uiAbsPartIdx ) ;
    1078   m_pcBinIf->encodeBin( uiSymbol, m_cCUICFlagSCModel.get( 0, 0, uiCtxIC ) );
    1079 #endif
    10801020#if !H_MV_ENC_DEC_TRAC
    10811021  DTRACE_CABAC_VL( g_nSymbolCounter++ );
    10821022  DTRACE_CABAC_T( "\tICFlag" );
    1083   DTRACE_CABAC_T( "\tuiCtxIC: ");
    1084   DTRACE_CABAC_V( uiCtxIC );
    10851023  DTRACE_CABAC_T( "\tuiSymbol: ");
    10861024  DTRACE_CABAC_V( uiSymbol );
     
    11671105    }
    11681106    if( pcCU->getLumaIntraDir( absPartIdx+partOffset*j ) < NUM_INTRA_MODE )
    1169 #if H_3D_DIM_SDC
    1170 #if QC_GENERIC_SDC_G0122
    1171       if( 1 )
    1172 #else
    1173       if( !pcCU->getSDCFlag( absPartIdx+partOffset*j ) )
    1174 #endif
    1175 #endif
    1176     {
    1177 #endif
    1178     predNum[j] = pcCU->getIntraDirLumaPredictor(absPartIdx+partOffset*j, preds[j]); 
    1179     for(UInt i = 0; i < predNum[j]; i++)
    1180     {
    1181       if(dir[j] == preds[j][i])
    1182       {
    1183         predIdx[j] = i;
    1184       }
    1185     }
    1186     m_pcBinIf->encodeBin((predIdx[j] != -1)? 1 : 0, m_cCUIntraPredSCModel.get( 0, 0, 0 ) );
     1107    {
     1108#endif
     1109      predNum[j] = pcCU->getIntraDirLumaPredictor(absPartIdx+partOffset*j, preds[j]); 
     1110      for(UInt i = 0; i < predNum[j]; i++)
     1111      {
     1112        if(dir[j] == preds[j][i])
     1113        {
     1114          predIdx[j] = i;
     1115        }
     1116      }
     1117      m_pcBinIf->encodeBin((predIdx[j] != -1)? 1 : 0, m_cCUIntraPredSCModel.get( 0, 0, 0 ) );
    11871118#if H_MV_ENC_DEC_TRAC
    1188     DTRACE_CU("prev_intra_luma_pred_flag", (predIdx[j] != -1)? 1 : 0);
     1119      DTRACE_CU("prev_intra_luma_pred_flag", (predIdx[j] != -1)? 1 : 0);
    11891120#endif
    11901121#if H_3D_DIM
     
    11971128#if H_3D_DIM
    11981129    if( pcCU->getLumaIntraDir( absPartIdx+partOffset*j ) < NUM_INTRA_MODE )
    1199 #if H_3D_DIM_SDC
    1200 #if QC_GENERIC_SDC_G0122
    1201       if( 1 )
    1202 #else
    1203       if( !pcCU->getSDCFlag( absPartIdx+partOffset*j ) )
    1204 #endif
    1205 #endif
    12061130    {
    12071131#endif
     
    13011225  default: break;
    13021226  }
    1303 #if !QC_SDC_UNIFY_G0130
    1304   if( dimType < DIM_NUM_TYPE || pcCU->getSDCFlag( absPartIdx ) )
    1305   {
    1306     UInt dimDeltaDC;
    1307     Pel  deltaDC;
    1308 #if QC_GENERIC_SDC_G0122
    1309     UInt uiNumSegments = isDimMode( dir ) ? 2 : 1;
    1310 #else
    1311     UInt uiNumSegments = ( dir == PLANAR_IDX ) ? 1 : 2;
    1312 #endif
    1313     if( pcCU->getSDCFlag( absPartIdx ) )
    1314     {
    1315       if( uiNumSegments==1 )
    1316       {
    1317         dimDeltaDC = pcCU->getSDCSegmentDCOffset(0, absPartIdx) ? 1 : 0;
    1318       }
    1319       else
    1320       {
    1321         dimDeltaDC = ( pcCU->getSDCSegmentDCOffset(0, absPartIdx) || pcCU->getSDCSegmentDCOffset(1, absPartIdx) ) ? 1 : 0;
    1322       }
    1323     }
    1324     else
    1325     {
    1326       dimDeltaDC = isDimDeltaDC( dir );
    1327     }
    1328 
    1329     m_pcBinIf->encodeBin( dimDeltaDC, m_cDdcFlagSCModel.get(0, 0, uiNumSegments-1) );
    1330 
    1331     if( dimDeltaDC )
    1332     {
    1333       for( UInt segment = 0; segment < uiNumSegments; segment++ )
    1334       {
    1335         deltaDC = pcCU->getSDCFlag( absPartIdx ) ? pcCU->getSDCSegmentDCOffset(segment, absPartIdx) : pcCU->getDimDeltaDC( dimType, segment, absPartIdx );
    1336         xCodeDimDeltaDC( deltaDC, uiNumSegments );
    1337       }
    1338     }
    1339   }
    1340 #endif
    1341 }
    1342 
    1343 #if QC_GENERIC_SDC_G0122
     1227}
     1228
    13441229Void TEncSbac::codeIntraDepthMode( TComDataCU* pcCU, UInt absPartIdx )
    13451230{
     
    13501235    m_pcBinIf->encodeBin( isDimMode( dir ) ? 0 : 1, m_cAngleFlagSCModel.get( 0, 0, pcCU->getCtxAngleFlag( absPartIdx ) ) );
    13511236  }
    1352 #if !QC_SDC_UNIFY_G0130
    1353   if( pcCU->getPartitionSize( absPartIdx ) == SIZE_2Nx2N ) //SDC is allowed only in this case
    1354   {
    1355     m_pcBinIf->encodeBin( pcCU->getSDCFlag( absPartIdx ) ? 1 : 0, m_cIntraSdcFlagSCModel.get( 0, 0, pcCU->getCtxSDCFlag( absPartIdx ) ) );
    1356 }
    1357 #endif
    13581237  if( isDimMode( dir ) )
    13591238  {
     
    13701249  }
    13711250}
    1372 #else
    1373 Void TEncSbac::codeIntraDepthMode( TComDataCU* pcCU, UInt absPartIdx )
    1374 {
    1375   UInt codeWordTable[3][7] =    {{0, 0, 0, 1, 0, 0, 0},{0, 2, 6, 14, 15, 0, 0},{0, 1, 0, 0, 0, 0, 0}};
    1376   UInt codeWordLenTable[3][7] = {{0, 1, 0, 1, 0, 0, 0},{1, 2, 3,  4,  4, 0, 0},{1, 1, 0, 0, 0, 0, 0}};
    1377   UInt dir = pcCU->getLumaIntraDir( absPartIdx );
    1378   UInt puIdx = (pcCU->getWidth(absPartIdx) == 64) ? 2 : ( (pcCU->getPartitionSize(absPartIdx) == SIZE_NxN && pcCU->getWidth(absPartIdx) == 8) ? 0 : 1 );
    1379   UInt codeIdx = 0;
    1380 
    1381   if( dir < NUM_INTRA_MODE )
    1382   {
    1383     codeIdx = 1;
    1384   }
    1385   if( isDimMode( dir ) )
    1386   {
    1387     switch( getDimType( dir ) )
    1388     {
    1389     case DMM1_IDX: codeIdx = 3; break;
    1390     case DMM4_IDX: codeIdx = 4; break;
    1391     default:                    break;
    1392     }
    1393   }
    1394 
    1395 #if H_3D_DIM_SDC
    1396   if( pcCU->getSDCFlag( absPartIdx ) )
    1397   {
    1398     switch( dir )
    1399     {
    1400       case PLANAR_IDX:  codeIdx = 0; break;
    1401       default:          codeIdx = 2; break;
    1402     }
    1403   }
    1404 #endif
    1405   //mode coding
    1406   for( UInt i = 0; i < codeWordLenTable[puIdx][codeIdx]; i++ )
    1407   {
    1408     UInt bit = codeWordTable[puIdx][codeIdx] & ( 1<<(codeWordLenTable[puIdx][codeIdx] - i - 1) );
    1409     UInt ctxDepthMode = puIdx*3 + ( (i >= 2) ? 2 : i );
    1410     m_pcBinIf->encodeBin( bit!=0 , m_cDepthIntraModeSCModel.get(0, 0, ctxDepthMode) );
    1411   }
    1412 }
    1413 #endif
    14141251#endif
    14151252
     
    24462283
    24472284#if H_3D_INTER_SDC
    2448 #if QC_SDC_UNIFY_G0130
    24492285Void TEncSbac::codeDeltaDC( TComDataCU* pcCU, UInt absPartIdx )
    24502286{
     
    24822318  else //all-zero inter SDC is not allowed
    24832319  {
    2484 #if SEC_INTER_SDC_G0101
    24852320    uiNumSegments = 1;
    2486 #else
    2487     PartSize cPartSize = pcCU->getPartitionSize( absPartIdx );
    2488     uiNumSegments = ( cPartSize == SIZE_2Nx2N ) ? 1 : ( cPartSize == SIZE_NxN ? 4 : 2 );
    2489 #endif
    24902321    dimDeltaDC = 1;
    24912322  }
     
    25192350  m_pcBinIf->encodeBin( uiSymbol, m_cSDCFlagSCModel.get( 0, 0, uiCtxSDCFlag ) );
    25202351}
    2521 #else
    2522 Void TEncSbac::codeInterSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx )
    2523 {
    2524   UInt uiSymbol = pcCU->getInterSDCFlag( uiAbsPartIdx ) ? 1 : 0;
    2525   UInt uiCtxInterSDCFlag = pcCU->getCtxInterSDCFlag( uiAbsPartIdx );
    2526 
    2527   m_pcBinIf->encodeBin( uiSymbol, m_cInterSDCFlagSCModel.get( 0, 0, uiCtxInterSDCFlag ) );
    2528 }
    2529 
    2530 Void TEncSbac::codeInterSDCResidualData ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiSegment )
    2531 {
    2532   Pel segmentDCOffset = pcCU->getInterSDCSegmentDCOffset( uiSegment, uiAbsPartIdx );
    2533 
    2534   UInt uiSign     = segmentDCOffset < 0 ? 1 : 0;
    2535   UInt uiAbsIdx   = abs( segmentDCOffset );
    2536 
    2537   assert( uiAbsIdx > 0 );
    2538   uiAbsIdx--;
    2539   xWriteExGolombLevel( uiAbsIdx, m_cInterSDCResidualSCModel.get( 0, 0, 0 ) );
    2540   m_pcBinIf->encodeBin( uiSign, m_cInterSDCResidualSignFlagSCModel.get( 0, 0, 0 ) );
    2541 }
    2542 #endif
     2352
    25432353#endif
    25442354
  • trunk/source/Lib/TLibEncoder/TEncSbac.h

    r872 r884  
    162162#endif
    163163#if H_3D_INTER_SDC
    164 #if QC_SDC_UNIFY_G0130
    165164  Void codeDeltaDC       ( TComDataCU* pcCU, UInt absPartIdx );
    166165  Void codeSDCFlag       ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    167 #else
    168   Void codeInterSDCFlag  ( TComDataCU* pcCU, UInt uiAbsPartIdx );
    169   Void codeInterSDCResidualData  ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiSegment );
    170 #endif
    171166#endif
    172167#if H_3D_DBBP
     
    262257  ContextModel3DBuffer m_cDdcFlagSCModel;
    263258  ContextModel3DBuffer m_cDdcDataSCModel;
    264 #if QC_GENERIC_SDC_G0122
    265259  ContextModel3DBuffer m_cAngleFlagSCModel;
    266 #if !QC_SDC_UNIFY_G0130
    267   ContextModel3DBuffer m_cIntraSdcFlagSCModel;
    268 #endif
    269 #endif
    270260#if H_3D_DIM_DMM
    271261  ContextModel3DBuffer m_cDmm1DataSCModel;
     
    276266#endif
    277267#endif
    278 #if H_3D_INTER_SDC && !QC_SDC_UNIFY_G0130
    279   ContextModel3DBuffer m_cInterSDCFlagSCModel;
    280   ContextModel3DBuffer m_cInterSDCResidualSCModel;
    281   ContextModel3DBuffer m_cInterSDCResidualSignFlagSCModel;
    282 #endif
    283 #if QC_SDC_UNIFY_G0130
     268#if H_3D_DIM_SDC
    284269  ContextModel3DBuffer m_cSDCFlagSCModel;
    285270#endif
  • trunk/source/Lib/TLibEncoder/TEncSearch.cpp

    r872 r884  
    920920      m_pcEntropyCoder  ->encodePartSize( pcCU, 0, pcCU->getDepth(0), true );
    921921
    922 #if QC_SDC_UNIFY_G0130
     922#if H_3D_DIM_SDC
    923923      m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true );
    924924#endif
     
    939939      {
    940940        m_pcEntropyCoder->encodeIntraDirModeLuma ( pcCU, 0 );
    941 #if QC_SDC_UNIFY_G0130_FIX
     941#if H_3D_DIM_SDC
    942942        if( pcCU->getSlice()->getIsDepth() && ( !pcCU->getSDCFlag( 0 ) ) && getDimType( pcCU->getLumaIntraDir( 0 ) ) < DIM_NUM_TYPE )
    943943        {
     
    956956        {
    957957          m_pcEntropyCoder->encodeIntraDirModeLuma ( pcCU, uiPart * uiQNumParts );
    958 #if QC_SDC_UNIFY_G0130_FIX
     958#if H_3D_DIM_SDC
    959959          if( pcCU->getSlice()->getIsDepth() && ( !pcCU->getSDCFlag( uiPart * uiQNumParts ) ) && getDimType( pcCU->getLumaIntraDir( uiPart * uiQNumParts ) ) < DIM_NUM_TYPE )
    960960          {
     
    967967      {
    968968        m_pcEntropyCoder->encodeIntraDirModeLuma ( pcCU, uiAbsPartIdx );
    969 #if QC_SDC_UNIFY_G0130_FIX
     969#if H_3D_DIM_SDC
    970970        if( pcCU->getSlice()->getIsDepth() && ( !pcCU->getSDCFlag( uiAbsPartIdx ) ) && getDimType( pcCU->getLumaIntraDir( uiAbsPartIdx ) ) < DIM_NUM_TYPE )
    971971        {
     
    975975    }
    976976  }
    977 #if QC_SDC_UNIFY_G0130 && !QC_SDC_UNIFY_G0130_FIX
    978     Int iPartNum = ( pcCU->isIntra( uiAbsPartIdx ) && pcCU->getPartitionSize( uiAbsPartIdx ) == SIZE_NxN ) ? 4 : 1;
    979     UInt uiPartOffset = ( pcCU->getPic()->getNumPartInCU() >> ( pcCU->getDepth( uiAbsPartIdx ) << 1 ) ) >> 2;
    980 
    981     if( !pcCU->getSDCFlag( uiAbsPartIdx ) )
    982     {
    983       for( Int iPart = 0; iPart < iPartNum; iPart++ )
    984       {
    985         if( getDimType( pcCU->getLumaIntraDir( uiAbsPartIdx + uiPartOffset*iPart ) ) < DIM_NUM_TYPE )
    986         {
    987           m_pcEntropyCoder->encodeDeltaDC( pcCU, uiAbsPartIdx + uiPartOffset*iPart );
    988         }
    989       }
    990     }
    991 #endif
     977
    992978  }
    993979  if( bChroma )
     
    18751861
    18761862#if H_3D_DIM_SDC
    1877 Void TEncSearch::xIntraCodingSDC( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost,
    1878 #if QC_GENERIC_SDC_G0122
    1879   Bool bZeroResidual, Int iSDCDeltaResi
    1880 #else
    1881   Bool bResidual
    1882 #endif
    1883   )
     1863Void TEncSearch::xIntraCodingSDC( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost, Bool bZeroResidual, Int iSDCDeltaResi  )
    18841864{
    18851865  UInt    uiLumaPredMode    = pcCU     ->getLumaIntraDir( uiAbsPartIdx );
    18861866  UInt    uiWidth           = pcCU     ->getWidth   ( 0 );
    18871867  UInt    uiHeight          = pcCU     ->getHeight  ( 0 );
    1888 #if QC_PKU_SDC_SPLIT_G0123
    1889 #if HS_TSINGHUA_SDC_SPLIT_G0111
    1890 #if QC_GENERIC_SDC_G0122
    18911868  TComWedgelet* dmm4SegmentationOrg = new TComWedgelet( uiWidth, uiHeight );
    1892 #endif
    1893 #else
    1894 #if QC_GENERIC_SDC_G0122
    1895   TComWedgelet* dmm4Segmentation = new TComWedgelet( uiWidth, uiHeight );
    1896 #endif
    1897 #endif
    1898 #endif
    1899 #if QC_PKU_SDC_SPLIT_G0123
    19001869  UInt numParts = 1;
    1901   UInt i = 0;
    19021870  UInt sdcDepth = 0;
    19031871  UInt uiStride;         
     
    19101878  UInt uiRecIPredStride;
    19111879
    1912 #if HS_TSINGHUA_SDC_SPLIT_G0111
    19131880  if ( ( uiWidth >> pcCU->getSlice()->getSPS()->getQuadtreeTULog2MaxSize() ) > 1 )
    19141881  {
     
    19171884    uiWidth = uiHeight = ( 1 << pcCU->getSlice()->getSPS()->getQuadtreeTULog2MaxSize() );
    19181885  }
    1919 #else
    1920   if (uiWidth == 64)
    1921   {
    1922     numParts = 4;
    1923     sdcDepth = 1;
    1924     uiWidth = uiHeight = 32;
    1925   }
    1926 #endif
    1927 
    1928   for ( i = 0; i < numParts; i++ )
     1886
     1887  for ( Int i = 0; i < numParts; i++ )
    19291888  {
    19301889    uiStride          = pcOrgYuv ->getStride  ();
     
    19381897
    19391898    AOF( uiWidth == uiHeight );
    1940 #else
    1941   UInt    uiStride          = pcOrgYuv ->getStride  ();
    1942   Pel*    piOrg             = pcOrgYuv ->getLumaAddr( uiAbsPartIdx );
    1943   Pel*    piPred            = pcPredYuv->getLumaAddr( uiAbsPartIdx );
    1944   Pel*    piReco            = pcPredYuv->getLumaAddr( uiAbsPartIdx );
    1945  
    1946   UInt    uiZOrder          = pcCU->getZorderIdxInCU() + uiAbsPartIdx;
    1947   Pel*    piRecIPred        = pcCU->getPic()->getPicYuvRec()->getLumaAddr( pcCU->getAddr(), uiZOrder );
    1948   UInt    uiRecIPredStride  = pcCU->getPic()->getPicYuvRec()->getStride  ();
    1949  
    1950   AOF( uiWidth == uiHeight );
    1951   AOF( uiAbsPartIdx == 0 );
    1952   AOF( pcCU->getSDCAvailable(uiAbsPartIdx) );
    1953   AOF( pcCU->getSDCFlag(uiAbsPartIdx) );
    1954 #endif
    1955 #if !QC_GENERIC_SDC_G0122
    1956   AOF( uiLumaPredMode == DC_IDX || uiLumaPredMode == PLANAR_IDX || ( getDimType( uiLumaPredMode ) == DMM1_IDX && !isDimDeltaDC( uiLumaPredMode ) ) );
    1957   AOF( uiLumaPredMode == DC_IDX || uiLumaPredMode == PLANAR_IDX || uiWidth < 64  );
    1958 #endif
    1959  
    1960   //===== init availability pattern =====
    1961   Bool  bAboveAvail = false;
    1962   Bool  bLeftAvail  = false;
    1963 #if QC_PKU_SDC_SPLIT_G0123
    1964   pcCU->getPattern()->initPattern   ( pcCU, sdcDepth, uiAbsPartIdx );
    1965   pcCU->getPattern()->initAdiPattern( pcCU, uiAbsPartIdx, sdcDepth, m_piYuvExt, m_iYuvExtStride, m_iYuvExtHeight, bAboveAvail, bLeftAvail );
    1966 #else
    1967   pcCU->getPattern()->initPattern   ( pcCU, 0, uiAbsPartIdx );
    1968   pcCU->getPattern()->initAdiPattern( pcCU, uiAbsPartIdx, 0, m_piYuvExt, m_iYuvExtStride, m_iYuvExtHeight, bAboveAvail, bLeftAvail );
    1969  
    1970 #endif
    1971 #if !QC_PKU_SDC_SPLIT_G0123
    1972 #if QC_GENERIC_SDC_G0122
    1973   TComWedgelet* dmm4Segmentation = new TComWedgelet( uiWidth, uiHeight );
    1974 #endif
    1975 #endif
    1976 #if HS_TSINGHUA_SDC_SPLIT_G0111
    1977 #if QC_GENERIC_SDC_G0122
    1978   TComWedgelet* dmm4Segmentation = new TComWedgelet( uiWidth, uiHeight );
    1979 #endif
    1980 #endif
    1981   //===== get prediction signal =====
    1982 #if H_3D_DIM
    1983   if( isDimMode( uiLumaPredMode ) )
    1984   {
    1985 #if HS_TSINGHUA_SDC_SPLIT_G0111 
    1986     UInt dimType   = getDimType  ( uiLumaPredMode );
    1987     UInt patternID = pcCU->getDmmWedgeTabIdx(dimType, uiAbsPartIdx);
    1988     if ( patternID >= g_dmmWedgeLists[g_aucConvertToBit[uiWidth]].size() && dimType == DMM1_IDX )
    1989     {
    1990       if (g_aucConvertToBit[uiWidth] == 2)  // Encoder method. Avoid DMM1 pattern list index exceeds the maximum DMM1 pattern number when SDC split is used.
    1991         patternID = 1349;  // Split 32x32 to 16x16. 1349: Maximum DMM1 pattern number when block size is 16x16
    1992       else
    1993         patternID = patternID >> 1;  // Other cases
    1994       pcCU->setDmmWedgeTabIdx(dimType, uiAbsPartIdx, patternID);
    1995     }
    1996 #endif
    1997     predIntraLumaDepth( pcCU, uiAbsPartIdx, uiLumaPredMode, piPred, uiStride, uiWidth, uiHeight, true
    1998 #if QC_GENERIC_SDC_G0122
    1999       , dmm4Segmentation
    2000 #endif
    2001       );
    2002 #if HS_TSINGHUA_SDC_SPLIT_G0111
    2003     Bool* dmm4PatternSplit = dmm4Segmentation->getPattern();
    2004     Bool* dmm4PatternOrg = dmm4SegmentationOrg->getPattern();
    2005     for( UInt k = 0; k < (uiWidth*uiHeight); k++ )
    2006     {
    2007       dmm4PatternOrg[k+(uiAbsPartIdx<<4)] = dmm4PatternSplit[k];
    2008     }
    2009 #endif
    2010   }
    2011   else
    2012   {
    2013 #endif
    2014     predIntraLumaAng( pcCU->getPattern(), uiLumaPredMode, piPred, uiStride, uiWidth, uiHeight, bAboveAvail, bLeftAvail );
    2015 #if H_3D_DIM
    2016   }
    2017 #endif
    2018 #if QC_PKU_SDC_SPLIT_G0123
     1899
     1900    //===== init availability pattern =====
     1901    Bool  bAboveAvail = false;
     1902    Bool  bLeftAvail  = false;
     1903    pcCU->getPattern()->initPattern   ( pcCU, sdcDepth, uiAbsPartIdx );
     1904    pcCU->getPattern()->initAdiPattern( pcCU, uiAbsPartIdx, sdcDepth, m_piYuvExt, m_iYuvExtStride, m_iYuvExtHeight, bAboveAvail, bLeftAvail );
     1905    TComWedgelet* dmm4Segmentation = new TComWedgelet( uiWidth, uiHeight );
     1906    //===== get prediction signal =====
     1907    if( isDimMode( uiLumaPredMode ) )
     1908    {
     1909      UInt dimType   = getDimType  ( uiLumaPredMode );
     1910      UInt patternID = pcCU->getDmmWedgeTabIdx(dimType, uiAbsPartIdx);
     1911      if ( patternID >= g_dmmWedgeLists[g_aucConvertToBit[uiWidth]].size() && dimType == DMM1_IDX )
     1912      {
     1913        if (g_aucConvertToBit[uiWidth] == 2) // Encoder method. Avoid DMM1 pattern list index exceeds the maximum DMM1 pattern number when SDC split is used.
     1914        {                                   
     1915          patternID = 1349;  // Split 32x32 to 16x16. 1349: Maximum DMM1 pattern number when block size is 16x16
     1916        }
     1917        else
     1918        {
     1919          patternID = patternID >> 1;  // Other cases
     1920        }
     1921        pcCU->setDmmWedgeTabIdx(dimType, uiAbsPartIdx, patternID);
     1922      }
     1923      predIntraLumaDepth( pcCU, uiAbsPartIdx, uiLumaPredMode, piPred, uiStride, uiWidth, uiHeight, true , dmm4Segmentation    );
     1924      Bool* dmm4PatternSplit = dmm4Segmentation->getPattern();
     1925      Bool* dmm4PatternOrg = dmm4SegmentationOrg->getPattern();
     1926      for( UInt k = 0; k < (uiWidth*uiHeight); k++ )
     1927      {
     1928        dmm4PatternOrg[k+(uiAbsPartIdx<<4)] = dmm4PatternSplit[k];
     1929      }
     1930    }
     1931    else
     1932    {
     1933      predIntraLumaAng( pcCU->getPattern(), uiLumaPredMode, piPred, uiStride, uiWidth, uiHeight, bAboveAvail, bLeftAvail );
     1934    }
    20191935    if ( numParts > 1 )
    20201936    {
     
    20311947    }
    20321948    uiAbsPartIdx += ( ( uiWidth * uiWidth ) >> 4 );
    2033 #if HS_TSINGHUA_SDC_SPLIT_G0111
    20341949    dmm4Segmentation->destroy(); delete dmm4Segmentation;
    2035 #endif
    20361950  }
    20371951  uiAbsPartIdx = 0;
     
    20401954  piPred            = pcPredYuv->getLumaAddr( uiAbsPartIdx );
    20411955  piReco            = pcPredYuv->getLumaAddr( uiAbsPartIdx );
    2042  
     1956
    20431957  uiZOrder          = pcCU->getZorderIdxInCU() + uiAbsPartIdx;
    20441958  piRecIPred        = pcCU->getPic()->getPicYuvRec()->getLumaAddr( pcCU->getAddr(), uiZOrder );
     
    20501964    uiHeight = pcCU->getHeight( 0 );
    20511965  }
    2052 #endif
    20531966  // number of segments depends on prediction mode
    20541967  UInt uiNumSegments = 1;
    20551968  Bool* pbMask = NULL;
    20561969  UInt uiMaskStride = 0;
    2057    
     1970
    20581971  if( getDimType( uiLumaPredMode ) == DMM1_IDX )
    20591972  {
    20601973    Int uiTabIdx = pcCU->getDmmWedgeTabIdx(DMM1_IDX, uiAbsPartIdx);
    2061    
     1974
    20621975    WedgeList* pacWedgeList = &g_dmmWedgeLists[(g_aucConvertToBit[uiWidth])];
    20631976    TComWedgelet* pcWedgelet = &(pacWedgeList->at( uiTabIdx ));
    2064    
     1977
    20651978    uiNumSegments = 2;
    20661979    pbMask = pcWedgelet->getPattern();
    20671980    uiMaskStride = pcWedgelet->getStride();
    20681981  }
    2069 #if QC_GENERIC_SDC_G0122
    20701982  if( getDimType( uiLumaPredMode ) == DMM4_IDX )
    20711983  {
    20721984    uiNumSegments = 2;
    2073 #if HS_TSINGHUA_SDC_SPLIT_G0111
    2074     pbMask  = dmm4SegmentationOrg->getPattern();
     1985    pbMask       = dmm4SegmentationOrg->getPattern();
    20751986    uiMaskStride = dmm4SegmentationOrg->getStride();
    2076 #else
    2077     pbMask  = dmm4Segmentation->getPattern();
    2078     uiMaskStride = dmm4Segmentation->getStride();
    2079 #endif
    2080   }
    2081 #endif
    2082  
     1987  }
     1988
    20831989  // get DC prediction for each segment
    20841990  Pel apDCPredValues[2];
    20851991  analyzeSegmentsSDC(piPred, uiStride, uiWidth, apDCPredValues, uiNumSegments, pbMask, uiMaskStride, uiLumaPredMode );
    2086  
     1992
    20871993  // get original DC for each segment
    20881994  Pel apDCOrigValues[2];
    20891995  analyzeSegmentsSDC(piOrg, uiStride, uiWidth, apDCOrigValues, uiNumSegments, pbMask, uiMaskStride, uiLumaPredMode, true );
    2090  
     1996
    20911997  for( UInt uiSegment = 0; uiSegment < uiNumSegments; uiSegment++ )
    20921998  {
    20931999    // remap reconstructed value to valid depth values
    2094 #if QC_GENERIC_SDC_G0122
    20952000    Pel pDCRec = ( !bZeroResidual ) ? apDCOrigValues[uiSegment] : apDCPredValues[uiSegment];
    2096 #else
    2097     Pel pDCRec = bResidual?apDCOrigValues[uiSegment]:apDCPredValues[uiSegment];
    2098 #endif
    20992001    // get residual (idx)
    21002002#if H_3D_DIM_DLT
     
    21032005    Pel pResidualIdx = pDCRec - apDCPredValues[uiSegment];
    21042006#endif
    2105 #if QC_GENERIC_SDC_G0122
    21062007    if( !bZeroResidual )
    21072008    {
     
    21132014      }
    21142015    }
    2115 #endif
    21162016    // save SDC DC offset
    21172017    pcCU->setSDCSegmentDCOffset(pResidualIdx, uiSegment, uiAbsPartIdx);
    21182018  }
    2119  
     2019
    21202020  // reconstruct residual based on mask + DC residuals
    21212021  Pel apDCResiValues[2];
     
    21322032#endif
    21332033  }
    2134  
     2034
    21352035  //===== reconstruction =====
    21362036  Bool* pMask     = pbMask;
     
    21382038  Pel* pReco      = piReco;
    21392039  Pel* pRecIPred  = piRecIPred;
    2140  
     2040
    21412041  for( UInt uiY = 0; uiY < uiHeight; uiY++ )
    21422042  {
     
    21472047
    21482048      Pel pResiDC = apDCResiValues[ucSegment];
    2149      
     2049
    21502050      pReco    [ uiX ] = ClipY( pPred[ uiX ] + pResiDC );
    21512051      pRecIPred[ uiX ] = pReco[ uiX ];
     
    21562056    pMask     += uiMaskStride;
    21572057  }
    2158  
     2058
    21592059  // clear UV
    21602060  UInt  uiStrideC     = pcPredYuv->getCStride();
    21612061  Pel   *pRecCb       = pcPredYuv->getCbAddr();
    21622062  Pel   *pRecCr       = pcPredYuv->getCrAddr();
    2163  
     2063
    21642064  for (Int y=0; y<uiHeight/2; y++)
    21652065  {
     
    21692069      pRecCr[x] = 128;
    21702070    }
    2171    
     2071
    21722072    pRecCb += uiStrideC;
    21732073    pRecCr += uiStrideC;
    21742074  }
    2175  
     2075
    21762076  //===== determine distortion =====
    21772077#if H_3D_VSO
     
    21812081#endif
    21822082    ruiDist = m_pcRdCost->getDistPart(g_bitDepthY, piReco, uiStride, piOrg, uiStride, uiWidth, uiHeight );
    2183  
     2083
    21842084  //===== determine rate and r-d cost =====
    21852085  m_pcEntropyCoder->resetBits();
    2186  
     2086
    21872087  // encode reduced intra header
    2188 #if QC_SDC_UNIFY_G0130
    21892088  if( !pcCU->getSlice()->isIntra() )
    21902089  {
     
    21972096  }
    21982097
    2199 #if QC_SDC_UNIFY_G0130_FIX2
    22002098  m_pcEntropyCoder->encodePartSize( pcCU, 0, pcCU->getDepth( 0 ), true );
    2201 #else
    2202   m_pcEntropyCoder->encodePartSize( pcCU, 0, true );
    2203 #endif
    22042099  m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true );
    2205 #else
    2206   m_pcEntropyCoder->encodePredMode( pcCU, 0, true );
    2207 #endif
    2208  
     2100
    22092101  // encode pred direction + DC residual data
    22102102  m_pcEntropyCoder->encodePredInfo( pcCU, 0, true );
    2211 #if QC_SDC_UNIFY_G0130
    22122103  Bool bDummy = false;
    22132104  m_pcEntropyCoder->encodeCoeff( pcCU, 0, pcCU->getDepth( 0 ), uiWidth, uiHeight, bDummy );
    2214 #endif
    22152105  UInt uiBits = m_pcEntropyCoder->getNumberOfWrittenBits();
    2216  
     2106
    22172107#if H_3D_VSO
    22182108  if ( m_pcRdCost->getUseLambdaScaleVSO())
     
    22212111#endif
    22222112    dRDCost = m_pcRdCost->calcRdCost( uiBits, ruiDist );
    2223 #if QC_GENERIC_SDC_G0122
    2224 #if HS_TSINGHUA_SDC_SPLIT_G0111
    22252113  dmm4SegmentationOrg->destroy(); delete dmm4SegmentationOrg;
    2226 #else
    2227   dmm4Segmentation->destroy(); delete dmm4Segmentation;
    2228 #endif
    2229 #endif
    22302114}
    22312115#endif
     
    30932977          case( DMM4_IDX ):
    30942978            {
    3095 #if !QC_GENERIC_SDC_G0122
    3096               if( uiWidth > 4 )
    3097 #endif
    30982979              {
    30992980                biSegmentation = new TComWedgelet( uiWidth, uiHeight );
     
    31513032      {
    31523033        pcCU->setSDCFlagSubParts( (uiSDC != 0), uiPartOffset, uiDepth + uiInitTrDepth );
    3153 #if QC_GENERIC_SDC_G0122
    31543034        for( Int iSDCDeltaResi = -2; iSDCDeltaResi <= 2; iSDCDeltaResi++ )
    31553035        {
     
    31583038            continue;
    31593039          }
    3160 #endif
    31613040#endif
    31623041     
     
    31693048      bTestZeroResi |= pcCU->getSDCFlag(uiPartOffset);
    31703049#endif
    3171 #if QC_GENERIC_SDC_G0122
    31723050      if( uiSDC != 0 && iSDCDeltaResi != 0 )
    31733051      {
    31743052        bTestZeroResi = false;
    31753053      }
    3176 #endif
    31773054#endif
    31783055     
     
    32053082
    32063083          // start encoding with SDC
    3207 #if QC_GENERIC_SDC_G0122
    32083084          xIntraCodingSDC(pcCU, uiPartOffset, pcOrgYuv, pcPredYuv, uiPUDistY, dPUCost, ( testZeroResi != 0 ), iSDCDeltaResi );
    3209 #else
    3210           xIntraCodingSDC(pcCU, uiPartOffset, pcOrgYuv, pcPredYuv, uiPUDistY, dPUCost, (testZeroResi!=0));
    3211 #endif
    32123085        }
    32133086        else
     
    32823155#if H_3D_DIM_ENC || H_3D_DIM_SDC
    32833156      }
    3284 #endif
    3285 #if QC_GENERIC_SDC_G0122
    32863157        } // SDC residual loop
    32873158#endif
     
    38853756  for( UInt uiMergeCand = 0; uiMergeCand < numValidMergeCand; ++uiMergeCand )
    38863757  {
    3887       UInt uiCostCand = MAX_UINT;
    3888       UInt uiBitsCand = 0;
    3889      
    3890       PartSize ePartSize = pcCU->getPartitionSize( 0 );
    3891      
    3892 #if H_3D_VSP && NTT_STORE_SPDV_VSP_G0148
    3893       pcCU->setVSPFlagSubParts( vspFlag[uiMergeCand], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
    3894       pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeCand].m_acDvInfo, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
     3758    UInt uiCostCand = MAX_UINT;
     3759    UInt uiBitsCand = 0;
     3760
     3761    PartSize ePartSize = pcCU->getPartitionSize( 0 );
     3762
     3763#if H_3D_VSP
     3764    pcCU->setVSPFlagSubParts( vspFlag[uiMergeCand], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
     3765    pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeCand].m_acDvInfo, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
    38953766#endif
    38963767
    38973768#if H_3D_SPIVMP
    3898       pcCU->setSPIVMPFlagSubParts( pbSPIVMPFlag[uiMergeCand], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ));
    3899       if (pbSPIVMPFlag[uiMergeCand])
    3900       {
    3901         UInt uiSPAddr;
    3902 
    3903         Int iNumSPInOneLine, iNumSP, iSPWidth, iSPHeight;
    3904 
    3905         pcCU->getSPPara(iWidth, iHeight, iNumSP, iNumSPInOneLine, iSPWidth, iSPHeight);
    3906 
    3907         for (Int iPartitionIdx = 0; iPartitionIdx < iNumSP; iPartitionIdx++)
    3908         {
    3909           pcCU->getSPAbsPartIdx(uiAbsPartIdx, iSPWidth, iSPHeight, iPartitionIdx, iNumSPInOneLine, uiSPAddr);
    3910           pcCU->getCUMvField( REF_PIC_LIST_0 )->setMvFieldSP(pcCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx], iSPWidth, iSPHeight);
    3911           pcCU->getCUMvField( REF_PIC_LIST_1 )->setMvFieldSP(pcCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx + 1], iSPWidth, iSPHeight);
    3912         }
    3913       }
    3914       else
    3915 #endif
    3916 #if NTT_STORE_SPDV_VSP_G0148
     3769    pcCU->setSPIVMPFlagSubParts( pbSPIVMPFlag[uiMergeCand], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ));
     3770    if (pbSPIVMPFlag[uiMergeCand])
     3771    {
     3772      UInt uiSPAddr;
     3773
     3774      Int iNumSPInOneLine, iNumSP, iSPWidth, iSPHeight;
     3775
     3776      pcCU->getSPPara(iWidth, iHeight, iNumSP, iNumSPInOneLine, iSPWidth, iSPHeight);
     3777
     3778      for (Int iPartitionIdx = 0; iPartitionIdx < iNumSP; iPartitionIdx++)
     3779      {
     3780        pcCU->getSPAbsPartIdx(uiAbsPartIdx, iSPWidth, iSPHeight, iPartitionIdx, iNumSPInOneLine, uiSPAddr);
     3781        pcCU->getCUMvField( REF_PIC_LIST_0 )->setMvFieldSP(pcCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx], iSPWidth, iSPHeight);
     3782        pcCU->getCUMvField( REF_PIC_LIST_1 )->setMvFieldSP(pcCU, uiSPAddr, pcMvFieldSP[2*iPartitionIdx + 1], iSPWidth, iSPHeight);
     3783      }
     3784    }
     3785    else
     3786#endif
     3787#if H_3D_VSP
    39173788#if H_3D_DBBP
    39183789      if ( vspFlag[uiMergeCand] && !pcCU->getDBBPFlag(0) )
     
    39503821        pcCU->getCUMvField(REF_PIC_LIST_0)->setAllMvField( cMvFieldNeighbours[0 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx );
    39513822        pcCU->getCUMvField(REF_PIC_LIST_1)->setAllMvField( cMvFieldNeighbours[1 + 2*uiMergeCand], ePartSize, uiAbsPartIdx, 0, iPUIdx );
    3952 
    3953 #if NTT_STORE_SPDV_VSP_G0148
    3954       }
    3955 #endif
    3956 #if H_3D_VSP && !NTT_STORE_SPDV_VSP_G0148
    3957       pcCU->setVSPFlagSubParts( vspFlag[uiMergeCand], uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
    3958       pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMergeCand].m_acDvInfo, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
    3959 #endif
    3960 
    3961 #if MTK_DDD_G0063
     3823#if H_3D_VSP
     3824      }
     3825#endif
     3826
     3827#if H_3D_DDD
    39623828      if( uiMergeCand == pcCU->getUseDDDCandIdx() )
    39633829      {
    3964           pcCU->setUseDDD( true, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
    3965           pcCU->setDDDepthSubParts( pcCU->getDDTmpDepth(), uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
     3830        pcCU->setUseDDD( true, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
     3831        pcCU->setDDDepthSubParts( pcCU->getDDTmpDepth(), uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
    39663832      }
    39673833      else
    39683834      {
    3969           pcCU->setUseDDD( false, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
     3835        pcCU->setUseDDD( false, uiAbsPartIdx, iPUIdx, pcCU->getDepth( uiAbsPartIdx ) );
    39703836      }
    39713837#endif
     
    39753841      if (uiMergeCand == m_pcEncCfg->getMaxNumMergeCand() -1)
    39763842      {
    3977          uiBitsCand--;
     3843        uiBitsCand--;
    39783844      }
    39793845      uiCostCand = uiCostCand + m_pcRdCost->getCost( uiBitsCand );
     
    39863852        uiMergeIndex = uiMergeCand;
    39873853      }
    3988     }
     3854  }
    39893855  }
    39903856
     
    45774443    {
    45784444      uiLastMode = 1;
    4579           pcCU->getCUMvField(REF_PIC_LIST_1)->setAllMv( cMv[1], ePartSize, uiPartAddr, 0, iPartIdx );
    4580           pcCU->getCUMvField(REF_PIC_LIST_1)->setAllRefIdx( iRefIdx[1], ePartSize, uiPartAddr, 0, iPartIdx );
    4581         TempMv = cMv[1] - cMvPred[1][iRefIdx[1]];
    4582             pcCU->getCUMvField(REF_PIC_LIST_1)->setAllMvd    ( TempMv,                 ePartSize, uiPartAddr, 0, iPartIdx );
     4445      pcCU->getCUMvField(REF_PIC_LIST_1)->setAllMv( cMv[1], ePartSize, uiPartAddr, 0, iPartIdx );
     4446      pcCU->getCUMvField(REF_PIC_LIST_1)->setAllRefIdx( iRefIdx[1], ePartSize, uiPartAddr, 0, iPartIdx );
     4447      TempMv = cMv[1] - cMvPred[1][iRefIdx[1]];
     4448      pcCU->getCUMvField(REF_PIC_LIST_1)->setAllMvd    ( TempMv,                 ePartSize, uiPartAddr, 0, iPartIdx );
    45834449      pcCU->setInterDirSubParts( 2, uiPartAddr, iPartIdx, pcCU->getDepth(0) );
    4584      
     4450
    45854451      pcCU->setMVPIdxSubParts( aaiMvpIdx[1][iRefIdx[1]], REF_PIC_LIST_1, uiPartAddr, iPartIdx, pcCU->getDepth(uiPartAddr));
    45864452      pcCU->setMVPNumSubParts( aaiMvpNum[1][iRefIdx[1]], REF_PIC_LIST_1, uiPartAddr, iPartIdx, pcCU->getDepth(uiPartAddr));
     
    46674533        pcCU->setDvInfoSubParts(inheritedVSPDisInfo[uiMRGIndex].m_acDvInfo, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
    46684534#endif
    4669 #if MTK_DDD_G0063
     4535#if H_3D_DDD
    46704536        if( uiMRGIndex == pcCU->getUseDDDCandIdx() )
    46714537        {
     
    47034569        else
    47044570#endif
    4705 #if NTT_STORE_SPDV_VSP_G0148
     4571#if H_3D_VSP
    47064572#if H_3D_DBBP
    47074573        if ( vspFlag[uiMRGIndex] && !pcCU->getDBBPFlag(uiPartAddr) )
     
    47354601        }
    47364602        else
    4737 #if H_3D_FIX_G0148_BRACE
    47384603          {
    4739 #endif
    47404604#endif
    47414605          pcCU->setInterDirSubParts  ( uiMRGInterDir, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
    47424606            pcCU->getCUMvField( REF_PIC_LIST_0 )->setAllMvField( cMRGMvField[0], ePartSize, uiPartAddr, 0, iPartIdx );
    47434607            pcCU->getCUMvField( REF_PIC_LIST_1 )->setAllMvField( cMRGMvField[1], ePartSize, uiPartAddr, 0, iPartIdx );
    4744 #if H_3D_FIX_G0148_BRACE
     4608#if H_3D
    47454609          }
    47464610#endif
     
    47584622        pcCU->setSPIVMPFlagSubParts(0, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
    47594623#endif
    4760 #if MTK_DDD_G0063
     4624#if H_3D_DDD
    47614625        pcCU->setUseDDD( false, uiPartAddr, iPartIdx, pcCU->getDepth( uiPartAddr ) );
    47624626#endif
     
    56165480    m_pcEntropyCoder->encodeSkipFlag(pcCU, 0, true);
    56175481    m_pcEntropyCoder->encodeMergeIndex( pcCU, 0, true );
    5618 #if !SEC_IC_ARP_SIG_G0072
     5482#if H_3D_ARP
     5483    m_pcEntropyCoder->encodeARPW( pcCU, 0 );
     5484#endif
    56195485#if H_3D_IC
    56205486    m_pcEntropyCoder->encodeICFlag( pcCU, 0, true );
    5621 #endif
    5622 #endif
    5623 #if H_3D_ARP
    5624     m_pcEntropyCoder->encodeARPW( pcCU, 0 );
    5625 #endif
    5626 #if SEC_IC_ARP_SIG_G0072
    5627 #if H_3D_IC
    5628     m_pcEntropyCoder->encodeICFlag( pcCU, 0, true );
    5629 #endif
    56305487#endif
    56315488    uiBits = m_pcEntropyCoder->getNumberOfWrittenBits();
     
    58825739
    58835740#if H_3D_INTER_SDC
    5884 #if SEC_INTER_SDC_G0101
    58855741Void TEncSearch::encodeResAndCalcRdInterSDCCU( TComDataCU* pcCU, TComYuv* pcOrg, TComYuv* pcPred, TComYuv* pcResi, TComYuv* pcRec, Int uiOffest, const UInt uiDepth )
    5886 #else
    5887 Void TEncSearch::encodeResAndCalcRdInterSDCCU( TComDataCU* pcCU, TComYuv* pcOrg, TComYuv* pcPred, TComYuv* pcResi, TComYuv* pcRec, const UInt uiDepth )
    5888 #endif
    58895742{
    58905743  if( !pcCU->getSlice()->getIsDepth() || pcCU->isIntra( 0 ) )
     
    58925745    return;
    58935746  }
    5894 #if QC_SDC_UNIFY_G0130
    58955747  pcCU->setSDCFlagSubParts( true, 0, uiDepth );
    5896 #else
    5897   pcCU->setInterSDCFlagSubParts( true, 0, 0, uiDepth );
    5898 #endif
    5899 
    5900   UInt  uiWidth      = pcCU->getWidth ( 0 );
    5901   UInt  uiHeight     = pcCU->getHeight( 0 );
    5902 #if SEC_INTER_SDC_G0101
    5903   UInt uiSegSize = 0;
    5904 #else
    5905   UChar* pMask       = pcCU->getInterSDCMask();
    5906   memset( pMask, 0, uiWidth*uiHeight );
    5907 
    5908   pcCU->xSetInterSDCCUMask( pcCU, pMask );
    5909 
    5910   UInt uiSegSize[4] = { 0, 0, 0, 0 };
    5911 #endif
     5748
     5749  UInt  uiWidth   = pcCU->getWidth ( 0 );
     5750  UInt  uiHeight  = pcCU->getHeight( 0 );
     5751  UInt  uiSegSize = 0;
     5752
    59125753  Pel *pPred, *pOrg;
    59135754  UInt uiPredStride = pcPred->getStride();
    59145755  UInt uiOrgStride  = pcOrg->getStride();
    59155756  UInt uiPelX, uiPelY;
    5916 #if !SEC_INTER_SDC_G0101
    5917   UInt uiPartitionSize = pcCU->getPartitionSize( 0 );
    5918   UInt uiSegmentNum = ( uiPartitionSize == SIZE_2Nx2N ) ? 1 : ( uiPartitionSize == SIZE_NxN ? 4 : 2 );
    5919 #endif
    59205757
    59215758  pPred = pcPred->getLumaAddr( 0 );
    59225759  pOrg  = pcOrg->getLumaAddr( 0 );
    5923 #if SEC_INTER_SDC_G0101
    59245760  Int pResDC = 0;
    5925 #else
    5926   Int pResDC[4] = { 0, 0, 0, 0};
    5927 #endif
    59285761
    59295762  //calculate dc value for prediction and original signal, and calculate residual and reconstruction
     
    59325765    for( uiPelX = 0; uiPelX < uiWidth; uiPelX++ )
    59335766    {
    5934 #if SEC_INTER_SDC_G0101
    59355767      pResDC += (Int)( pOrg [uiPelX] - pPred[uiPelX] );
    59365768      uiSegSize++;
    5937 #else
    5938       UChar uiSeg = pMask[ uiPelX + uiPelY*uiWidth ];
    5939       pResDC[uiSeg] += (Int)( pOrg [uiPelX] - pPred[uiPelX] );
    5940       uiSegSize[uiSeg]++;
    5941 #endif
    59425769    }
    59435770    pOrg  += uiOrgStride;
     
    59455772  }
    59465773
    5947 #if SEC_INTER_SDC_G0101
    59485774  Int iResiOffset = ( pResDC  > 0 ? ( uiSegSize >> 1 ) : -1*( uiSegSize >> 1 ) );
    59495775  pResDC          = ( pResDC + iResiOffset ) / (Int) uiSegSize;
    59505776
    59515777  pcCU->setSDCSegmentDCOffset( pResDC + uiOffest, 0, 0 );
    5952 #else
    5953   for( UInt uiSeg = 0; uiSeg < uiSegmentNum; uiSeg++ )
    5954   {
    5955     Int iResiOffset = ( pResDC [uiSeg] > 0 ? ( uiSegSize[uiSeg] >> 1 ) : -1*( uiSegSize[uiSeg] >> 1 ) );
    5956     pResDC [uiSeg]  = ( pResDC [uiSeg] + iResiOffset ) / (Int) uiSegSize[uiSeg];
    5957 #if QC_SDC_UNIFY_G0130
    5958     pcCU->setSDCSegmentDCOffset( pResDC[uiSeg], uiSeg, 0 );
    5959 #else
    5960     pcCU->setInterSDCSegmentDCOffset( pResDC[uiSeg], uiSeg, 0 );
    5961 #endif
    5962   }
    5963 #endif
     5778
    59645779
    59655780  Pel *pRec;
     
    59725787    for( uiPelX = 0; uiPelX < uiWidth; uiPelX++ )
    59735788    {
    5974 #if SEC_INTER_SDC_G0101
    59755789      pRec[ uiPelX ] = Clip3( 0, ( 1 << g_bitDepthY ) - 1, pPred[uiPelX] + pcCU->getSDCSegmentDCOffset(0, 0) );
    5976 #else
    5977       UChar uiSeg = pMask[ uiPelX + uiPelY*uiWidth ];
    5978       assert( uiSeg < uiSegmentNum );
    5979 
    5980       pRec[ uiPelX ] = Clip3( 0, ( 1 << g_bitDepthY ) - 1, pPred[uiPelX] + pResDC[uiSeg] );
    5981 #endif
    59825790    }
    59835791    pPred     += uiPredStride;
     
    60195827#endif
    60205828
    6021 #if QC_SDC_UNIFY_G0130
     5829#if H_3D_DIM_SDC
    60225830  Bool bNonSkip = false;
    60235831#else
    60245832  Bool bNonSkip = true;
    60255833#endif
    6026 #if SEC_INTER_SDC_G0101
    60275834  bNonSkip |= ( pcCU->getSDCSegmentDCOffset( 0, 0 ) != 0 ) ? 1 : 0;
    6028 #else
    6029   for( UInt uiSeg = 0; uiSeg < uiSegmentNum; uiSeg++ )
    6030   {
    6031 #if QC_SDC_UNIFY_G0130
    6032     bNonSkip |= ( pcCU->getSDCSegmentDCOffset( uiSeg, 0 ) != 0 ) ? 1 : 0;
    6033 #else
    6034     bNonSkip &= ( pcCU->getInterSDCSegmentDCOffset( uiSeg, 0 ) != 0 ) ? 1 : 0;
    6035 #endif
    6036   }
    6037 #endif
    6038 
    60395835  if( !bNonSkip )
    60405836  {
     
    71766972    m_pcEntropyCoder->encodeSkipFlag(pcCU, 0, true);
    71776973    m_pcEntropyCoder->encodeMergeIndex(pcCU, 0, true);
    7178 #if !SEC_IC_ARP_SIG_G0072
     6974#if H_3D_ARP
     6975    m_pcEntropyCoder->encodeARPW( pcCU, 0 );
     6976#endif
    71796977#if H_3D_IC
    71806978    m_pcEntropyCoder->encodeICFlag( pcCU, 0, true );
    7181 #endif
    7182 #endif
    7183 #if H_3D_ARP
    7184     m_pcEntropyCoder->encodeARPW( pcCU, 0 );
    7185 #endif
    7186 #if SEC_IC_ARP_SIG_G0072
    7187 #if H_3D_IC
    7188     m_pcEntropyCoder->encodeICFlag( pcCU, 0, true );
    7189 #endif
    71906979#endif
    71916980    ruiBits += m_pcEntropyCoder->getNumberOfWrittenBits();
     
    72016990    m_pcEntropyCoder->encodePredMode( pcCU, 0, true );
    72026991    m_pcEntropyCoder->encodePartSize( pcCU, 0, pcCU->getDepth(0), true );
    7203 #if QC_SDC_UNIFY_G0130
     6992#if H_3D_DIM_SDC
    72046993    m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true );
    72056994#endif
    72066995    m_pcEntropyCoder->encodePredInfo( pcCU, 0, true );
    7207 #if !SEC_IC_ARP_SIG_G0072
     6996#if H_3D_ARP
     6997    m_pcEntropyCoder->encodeARPW( pcCU , 0 );
     6998#endif
    72086999#if H_3D_IC
    72097000    m_pcEntropyCoder->encodeICFlag( pcCU, 0, true );
    7210 #endif
    7211 #endif
    7212 #if H_3D_ARP
    7213     m_pcEntropyCoder->encodeARPW( pcCU , 0 );
    7214 #endif
    7215 #if SEC_IC_ARP_SIG_G0072
    7216 #if H_3D_IC
    7217     m_pcEntropyCoder->encodeICFlag( pcCU, 0, true );
    7218 #endif
    7219 #endif
    7220 #if H_3D_INTER_SDC && !QC_SDC_UNIFY_G0130
    7221     m_pcEntropyCoder->encodeInterSDCFlag( pcCU, 0, true );
    72227001#endif
    72237002    Bool bDummy = false;
  • trunk/source/Lib/TLibEncoder/TEncSearch.h

    r872 r884  
    218218    TComYuv* pcResi,
    219219    TComYuv* pcRec,
    220 #if SEC_INTER_SDC_G0101
    221220    Int      uiOffset,
    222 #endif
    223221    const UInt uiDepth );
    224222#endif
     
    355353#endif
    356354#if H_3D_DIM_SDC
    357   Void xIntraCodingSDC            ( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost,
    358 #if QC_GENERIC_SDC_G0122
    359     Bool bZeroResidual, Int iSDCDeltaResi
    360 #else
    361     Bool bResidual
    362 #endif
    363     );
     355  Void xIntraCodingSDC            ( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost, Bool bZeroResidual, Int iSDCDeltaResi    );
    364356#endif
    365357#endif
  • trunk/source/Lib/TLibEncoder/TEncSlice.h

    r872 r884  
    107107  UInt                    m_uiSliceIdx;
    108108  std::vector<TEncSbac*> CTXMem;
    109 #if MTK_DDD_G0063
     109#if H_3D_DDD
    110110  Int          m_iDDDScale;
    111111  Int          m_iDDDOffset;
     
    146146  Void      setCtxMem( TEncSbac* sb, Int b )   { CTXMem[b] = sb; }
    147147
    148 #if MTK_DDD_G0063
     148#if H_3D_DDD
    149149  Void setDDDPar( Int iScale, Int iOffset, UInt uiPrecision ){ m_iDDDScale = iScale; m_iDDDOffset = iOffset; m_uiDDDPrecision = uiPrecision; }
    150150#endif
  • trunk/source/Lib/TLibEncoder/TEncTop.cpp

    r872 r884  
    667667  m_cSPS.setSPSId( getLayerIdInVps() );
    668668  m_cSPS.setLayerId( getLayerId() );
    669 #endif
    670 #if H_MV_HLS_7_VPS_P0048_14
    671669 // Code below needs to be moved to VPS
    672670#endif
     
    832830  m_cPPS.setSPSId( getLayerIdInVps() );
    833831
    834 #if H_MV_HLS_7_GEN_P0166_PPS_EXTENSION
    835 #if H_MV 
    836832  m_cPPS.setPpsExtensionTypeFlag          ( PPS_EX_T_MV ,true );
    837833#if H_3D
    838834  m_cPPS.setPpsExtensionTypeFlag          ( PPS_EX_T_3D ,true );
    839 #endif
    840 #endif
    841835#endif
    842836#endif
Note: See TracChangeset for help on using the changeset viewer.