Index: /branches/HTM-14.1-update-dev1-RWTH/source/App/TAppEncoder/TAppEncCfg.cpp
===================================================================
--- /branches/HTM-14.1-update-dev1-RWTH/source/App/TAppEncoder/TAppEncCfg.cpp	(revision 1226)
+++ /branches/HTM-14.1-update-dev1-RWTH/source/App/TAppEncoder/TAppEncCfg.cpp	(revision 1227)
@@ -2089,5 +2089,5 @@
   
   // FJ: this should be removed as soon as Inter-SDC is fully implemented
-#if !NH_3D_INTER_SDC
+#if !NH_3D_SDC_INTER
   m_interSdcFlag = false;
 #endif
Index: /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/ContextTables.h
===================================================================
--- /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/ContextTables.h	(revision 1226)
+++ /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/ContextTables.h	(revision 1227)
@@ -177,8 +177,8 @@
 #define NUM_DMM_MODE_CTX              1       ///< number of context models for DMM modes
 #endif
-#if NH_3D_DMM || NH_3D_INTRA_SDC
+#if NH_3D_DMM || NH_3D_SDC_INTRA
 #define NUM_DDC_DATA_CTX              1       ///< number of context models for deltaDC data (DMM or SDC)
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
 #define SDC_NUM_RESIDUAL_FLAG_CTX     1
 #define SDC_NUM_RESIDUAL_CTX          1
@@ -577,5 +577,5 @@
 };
 #endif
-#if NH_3D_DMM || NH_3D_INTRA_SDC
+#if NH_3D_DMM || NH_3D_SDC_INTRA
 static const UChar
 INIT_DDC_DATA[3][NUM_DDC_DATA_CTX] = 
@@ -586,5 +586,5 @@
 };
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
 static const UChar
 INIT_SDC_RESIDUAL_FLAG[3][SDC_NUM_RESIDUAL_FLAG_CTX] =
Index: /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TComCodingStatistics.h
===================================================================
--- /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TComCodingStatistics.h	(revision 1226)
+++ /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TComCodingStatistics.h	(revision 1227)
@@ -93,5 +93,5 @@
   STATS__CABAC_BITS__ALIGNED_ESCAPE_BITS,
 
-#if NH_3D_DMM || NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC
   STATS__CABAC_BITS__DELTADC_SIGN_EP,
   STATS__CABAC_BITS__DELTADC_PREFIX,
@@ -154,5 +154,5 @@
     "CABAC_BITS__ALIGNED_SIGN_BIT",
     "CABAC_BITS__ALIGNED_ESCAPE_BITS"
-#if NH_3D_DMM || NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC
    ,"STATS__CABAC_BITS__DELTADC_SIGN_EP"
    ,"STATS__CABAC_BITS__DELTADC_PREFIX"
Index: /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TComDataCU.cpp
===================================================================
--- /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TComDataCU.cpp	(revision 1226)
+++ /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TComDataCU.cpp	(revision 1227)
@@ -112,5 +112,5 @@
   m_dmm1WedgeTabIdx = NULL;
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   m_pbSDCFlag             = NULL;
   m_apSegmentDCOffset[0]  = NULL;
@@ -258,5 +258,5 @@
     m_dmm1WedgeTabIdx    = (UInt*)xMalloc(UInt, uiNumPartition);
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
     m_pbSDCFlag             = (Bool*)xMalloc(Bool, uiNumPartition);
     m_apSegmentDCOffset[0]  = (Pel*)xMalloc(Pel, uiNumPartition);
@@ -473,5 +473,5 @@
     if ( m_dmm1WedgeTabIdx    ) { xFree( m_dmm1WedgeTabIdx );  m_dmm1WedgeTabIdx = NULL;  }
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
     if ( m_pbSDCFlag            ) { xFree(m_pbSDCFlag);             m_pbSDCFlag             = NULL; }
     if ( m_apSegmentDCOffset[0] ) { xFree(m_apSegmentDCOffset[0]);  m_apSegmentDCOffset[0]  = NULL; }
@@ -614,5 +614,5 @@
     m_pbSPIVMPFlag[ui] = pcFrom->m_pbSPIVMPFlag[ui];
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   memset( m_pbSDCFlag, false, m_uiNumPartition * sizeof( *m_pbSDCFlag ) );
 #endif
@@ -653,5 +653,5 @@
   memset( m_dmm1WedgeTabIdx,    0,                        m_uiNumPartition * sizeof( *m_dmm1WedgeTabIdx   ) );
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
     memset( m_pbSDCFlag,     false,                m_uiNumPartition * sizeof( *m_pbSDCFlag ) );
     memset( m_apSegmentDCOffset[0],     0,                m_uiNumPartition * sizeof( *m_apSegmentDCOffset[0] ) );
@@ -811,5 +811,5 @@
     m_dmm1WedgeTabIdx    [ui] = 0;
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
       m_pbSDCFlag           [ui] = false;
       m_apSegmentDCOffset[0][ui] = 0;
@@ -917,5 +917,5 @@
   memset( m_dmm1WedgeTabIdx,    0, sizeof(UInt) * m_uiNumPartition );
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   memset( m_pbSDCFlag,            0, sizeof(Bool) * m_uiNumPartition  );
   memset( m_apSegmentDCOffset[0], 0, sizeof(Pel) * m_uiNumPartition   );
@@ -974,5 +974,5 @@
   m_dmm1WedgeTabIdx    [ui] = pcCU->m_dmm1WedgeTabIdx  [uiPartOffset+ui];
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
     m_pbSDCFlag           [ui] = pcCU->m_pbSDCFlag            [ uiPartOffset + ui ];
     m_apSegmentDCOffset[0][ui] = pcCU->m_apSegmentDCOffset[0] [ uiPartOffset + ui ];
@@ -1092,5 +1092,5 @@
   m_dmm1WedgeTabIdx    = pcCU->getDmm1WedgeTabIdx()  + uiPart;
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   m_pbSDCFlag               = pcCU->getSDCFlag()              + uiPart;
   m_apSegmentDCOffset[0]    = pcCU->getSDCSegmentDCOffset(0)  + uiPart;
@@ -1294,5 +1294,5 @@
   memcpy( m_dmm1WedgeTabIdx    + uiOffset, pcCU->getDmm1WedgeTabIdx(),         sizeof(UInt) * uiNumPartition );
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   memcpy( m_pbSDCFlag             + uiOffset, pcCU->getSDCFlag(), sizeof( *m_pbSDCFlag ) * uiNumPartition  );
   memcpy( m_apSegmentDCOffset[0]  + uiOffset, pcCU->getSDCSegmentDCOffset(0), sizeof( Pel ) * uiNumPartition);
@@ -1417,5 +1417,5 @@
   memcpy( pCtu->getDmm1WedgeTabIdx()           + m_absZIdxInCtu, m_dmm1WedgeTabIdx,  sizeof(UInt) * m_uiNumPartition );
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   memcpy( pCtu->getSDCFlag()             + m_absZIdxInCtu, m_pbSDCFlag, sizeof(Bool) * m_uiNumPartition );
   memcpy( pCtu->getSDCSegmentDCOffset(0) + m_absZIdxInCtu, m_apSegmentDCOffset[0], sizeof( Pel ) * m_uiNumPartition);
@@ -2382,5 +2382,5 @@
 }
 
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
 Void TComDataCU::setSDCFlagSubParts ( Bool bSDCFlag, UInt absPartIdx, UInt depth )
 {
Index: /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TComDataCU.h
===================================================================
--- /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TComDataCU.h	(revision 1226)
+++ /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TComDataCU.h	(revision 1227)
@@ -186,5 +186,5 @@
   UInt*         m_dmm1WedgeTabIdx;
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   Bool*         m_pbSDCFlag;
   Pel*          m_apSegmentDCOffset[2];
@@ -563,5 +563,5 @@
   Void  setDmm1WedgeTabIdxSubParts    ( UInt tabIdx, UInt uiAbsPartIdx, UInt uiDepth );
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   Bool*         getSDCFlag          ()                        { return m_pbSDCFlag;               }
   Bool          getSDCFlag          ( UInt uiIdx )            { return m_pbSDCFlag[uiIdx];        }
Index: /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TComPrediction.cpp
===================================================================
--- /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TComPrediction.cpp	(revision 1226)
+++ /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TComPrediction.cpp	(revision 1227)
@@ -535,5 +535,5 @@
   assert( iWidth == iHeight  );
   assert( iWidth >= DMM_MIN_SIZE && iWidth <= DMM_MAX_SIZE );
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   assert( !pcCU->getSDCFlag( uiAbsPartIdx ) );
 #endif
@@ -569,5 +569,5 @@
   assignBiSegDCs( pDst, uiStride, biSegPattern, patternStride, segDC1, segDC2 );
 #if !TEMP_SDC_CLEANUP // PM: should be obsolete after cleanup
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   pcCU->setDmmPredictor(segDC1, 0);
   pcCU->setDmmPredictor(segDC2, 1);
@@ -2389,5 +2389,5 @@
 
 #if TEMP_SDC_CLEANUP // PM: consider this cleanup for SDC
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
 Void TComPrediction::predConstantSDC( Pel* ptrSrc, UInt srcStride, UInt uiSize, Pel& predDC )
 {
@@ -2400,5 +2400,5 @@
 #endif
 #else // PM: should be obsolete after cleanup
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
 Void TComPrediction::analyzeSegmentsSDC( Pel* pOrig, UInt uiStride, UInt uiSize, Pel* rpSegMeans, UInt uiNumSegments, Bool* pMask, UInt uiMaskStride
                                          ,UInt uiIntraMode
@@ -2465,5 +2465,5 @@
   }
 }
-#endif // NH_3D_INTRA_SDC
+#endif // NH_3D_SDC_INTRA
 #endif
 
Index: /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TComPrediction.h
===================================================================
--- /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TComPrediction.h	(revision 1226)
+++ /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TComPrediction.h	(revision 1227)
@@ -171,9 +171,9 @@
 #endif
 #if TEMP_SDC_CLEANUP // PM: consider this cleanup for SDC
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   Void predConstantSDC            ( Pel* ptrSrc, UInt srcStride, UInt uiSize, Pel& predDC );
 #endif
 #else // PM: should be obsolete after cleanup
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   Void analyzeSegmentsSDC         ( Pel* pOrig, UInt uiStride, UInt uiSize, Pel* rpSegMeans, UInt uiNumSegments, Bool* pMask, UInt uiMaskStride, UInt uiIntraMode, Bool orgDC=false );
 #endif
Index: /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TypeDef.h
===================================================================
--- /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TypeDef.h	(revision 1226)
+++ /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibCommon/TypeDef.h	(revision 1227)
@@ -69,7 +69,8 @@
 #if NH_3D
 #define NH_3D_VSO                         1
-#define NH_3D_DMM                         0   // Depth modeling modes
-#define NH_3D_DLT                         1   // Depth Lookup Table
-#define NH_3D_INTRA_SDC                   1   // Segment-wise DC Coding method for INTRA
+#define NH_3D_DMM                         1   // Depth modeling modes
+#define NH_3D_DLT                         0   // Depth Lookup Table
+#define NH_3D_SDC_INTRA                   1   // Segment-wise DC Coding method for INTRA
+#define NH_3D_SDC_INTER                   0   // Segment-wise DC Coding method for INTER  
 #define NH_3D_ENC_DEPTH                   1   // Encoder optimizations for depth, incl.
                                               // HHI_DEPTH_INTRA_SEARCH_RAU_C0160
Index: /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibDecoder/TDecCAVLC.cpp
===================================================================
--- /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibDecoder/TDecCAVLC.cpp	(revision 1226)
+++ /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibDecoder/TDecCAVLC.cpp	(revision 1227)
@@ -3390,5 +3390,5 @@
 }
 #endif
-#if NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_SDC_INTRA || H_3D_INTER_SDC
 Void TDecCavlc::parseSDCFlag    ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
 {
Index: /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibDecoder/TDecCAVLC.h
===================================================================
--- /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibDecoder/TDecCAVLC.h	(revision 1226)
+++ /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibDecoder/TDecCAVLC.h	(revision 1227)
@@ -123,8 +123,8 @@
   Void  parseICFlag         ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
 #endif
-#if NH_3D_DMM || NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC
   Void  parseDeltaDC        ( TComDataCU* /*pcCU*/, UInt /*absPartIdx*/, UInt /*depth*/ ) { assert(0); };
 #endif
-#if NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_SDC_INTRA || H_3D_INTER_SDC
   Void  parseSDCFlag        ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
 #endif
Index: /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibDecoder/TDecCu.cpp
===================================================================
--- /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibDecoder/TDecCu.cpp	(revision 1226)
+++ /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibDecoder/TDecCu.cpp	(revision 1227)
@@ -527,5 +527,5 @@
     if(pcCU->getIPCMFlag(uiAbsPartIdx))
     {
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
       m_pcEntropyDecoder->decodeSDCFlag( pcCU, uiAbsPartIdx, uiDepth );
 #endif
@@ -647,5 +647,5 @@
       //xReconDIS( m_ppcCU[uiDepth], 0, uiDepth );
     }
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
     else if( m_ppcCU[uiDepth]->getSDCFlag(0) )
     {
@@ -1183,5 +1183,5 @@
 }
 
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
 Void TDecCu::xReconIntraSDC( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
 {
@@ -1231,8 +1231,10 @@
 
     //===== init availability pattern =====
-#if !TEMP_SDC_CLEANUP // PM: please migrate together with below "initPattern" and remove macro
-    pcCU->getPattern()->initPattern   ( pcCU, sdcDepth, uiAbsPartIdx );
-    pcCU->getPattern()->initAdiPattern( pcCU, uiAbsPartIdx, sdcDepth, m_pcPrediction->getPredicBuf(), m_pcPrediction->getPredicBufWidth(), m_pcPrediction->getPredicBufHeight(), bAboveAvail, bLeftAvail );
-#endif
+    TComTURecurse tuRecurseCU(pcCU, 0);
+    TComTURecurse tuRecurseWithPU(tuRecurseCU, false, TComTU::DONT_SPLIT);
+
+    Bool bAboveAvail = false;
+    Bool bLeftAvail  = false;
+    m_pcPrediction->initIntraPatternChType( tuRecurseWithPU, bAboveAvail, bLeftAvail, COMPONENT_Y, false DEBUG_STRING_PASS_INTO(sTemp) );
 
     // get partition
Index: /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibDecoder/TDecCu.h
===================================================================
--- /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibDecoder/TDecCu.h	(revision 1226)
+++ /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibDecoder/TDecCu.h	(revision 1227)
@@ -127,5 +127,5 @@
   Void xReconDIS               ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   Void xReconIntraSDC           ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
 #endif
Index: /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibDecoder/TDecEntropy.cpp
===================================================================
--- /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibDecoder/TDecEntropy.cpp	(revision 1226)
+++ /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibDecoder/TDecEntropy.cpp	(revision 1227)
@@ -162,5 +162,5 @@
   {
     decodeIntraDirModeLuma  ( pcCU, uiAbsPartIdx, uiDepth );
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
     decodeSDCFlag   ( pcCU, uiAbsPartIdx, uiDepth );
 #endif
@@ -960,5 +960,5 @@
 Void TDecEntropy::decodeCoeff( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, Bool& bCodeDQP, Bool& isChromaQpAdjCoded )
 {
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   if( pcCU->getSDCFlag( uiAbsPartIdx ) && pcCU->isIntra( uiAbsPartIdx) )
   {
@@ -979,5 +979,5 @@
   if( pcCU->getSlice()->getIsDepth() )
   {
-#if NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_SDC_INTRA || H_3D_INTER_SDC
     if( pcCU->getSDCFlag( uiAbsPartIdx ) )
     {
@@ -1037,5 +1037,5 @@
 }
 
-#if NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_SDC_INTRA || H_3D_INTER_SDC
 Void TDecEntropy::decodeSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
 {
Index: /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibDecoder/TDecEntropy.h
===================================================================
--- /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibDecoder/TDecEntropy.h	(revision 1226)
+++ /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibDecoder/TDecEntropy.h	(revision 1227)
@@ -91,8 +91,8 @@
   virtual Void parseICFlag        ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0;
 #endif
-#if NH_3D_DMM || NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC
   virtual Void  parseDeltaDC      ( TComDataCU* pcCU, UInt absPartIdx, UInt depth ) = 0;
 #endif
-#if NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_SDC_INTRA || H_3D_INTER_SDC
   virtual Void parseSDCFlag       ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0;
 #endif
@@ -183,5 +183,5 @@
 #endif
 
-#if NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_SDC_INTRA || H_3D_INTER_SDC
   Void decodeSDCFlag           ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
 #endif
Index: /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibDecoder/TDecSbac.cpp
===================================================================
--- /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibDecoder/TDecSbac.cpp	(revision 1226)
+++ /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibDecoder/TDecSbac.cpp	(revision 1227)
@@ -111,8 +111,8 @@
 , m_cDmmModeSCModel                          ( 1,             1,                      NUM_DMM_MODE_CTX                     , m_contextModels + m_numContextModels, m_numContextModels)
 #endif
-#if NH_3D_DMM || NH_3D_INTRA_SDC
+#if NH_3D_DMM || NH_3D_SDC_INTRA
 , m_cDdcDataSCModel                          ( 1,             1,                      NUM_DDC_DATA_CTX                     , m_contextModels + m_numContextModels, m_numContextModels)
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
 , m_cSDCResidualFlagSCModel                  ( 1,             1,                     SDC_NUM_RESIDUAL_FLAG_CTX             , m_contextModels + m_numContextModels, m_numContextModels)
 , m_cSDCResidualSCModel                      ( 1,             1,                     SDC_NUM_RESIDUAL_CTX                  , m_contextModels + m_numContextModels, m_numContextModels)
@@ -202,8 +202,8 @@
   m_cDmmModeSCModel.initBuffer                    ( sliceType, qp, (UChar*)INIT_DMM_MODE );
 #endif
-#if NH_3D_DMM || NH_3D_INTRA_SDC
+#if NH_3D_DMM || NH_3D_SDC_INTRA
   m_cDdcDataSCModel.initBuffer                    ( sliceType, qp, (UChar*)INIT_DDC_DATA );
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   m_cSDCResidualFlagSCModel.initBuffer            ( sliceType, qp, (UChar*)INIT_SDC_RESIDUAL_FLAG );
   m_cSDCResidualSCModel.initBuffer                ( sliceType, qp, (UChar*)INIT_SDC_RESIDUAL );
@@ -2334,8 +2334,8 @@
 #endif
 
-#if NH_3D_DMM || NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC
 Void TDecSbac::parseDeltaDC( TComDataCU* pcCU, UInt absPartIdx, UInt depth )
 {
-#if NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_SDC_INTRA || H_3D_INTER_SDC
   if( !(pcCU->getSDCFlag( absPartIdx )) )
 #endif
@@ -2346,5 +2346,5 @@
 
   UInt symbol = 1;
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   if( pcCU->isIntra( absPartIdx ) && pcCU->getSDCFlag( absPartIdx ))
   {
@@ -2370,5 +2370,5 @@
     if( pcCU->isIntra( absPartIdx ) )
     {
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
       if( pcCU->getSDCFlag( absPartIdx ) )
       {
@@ -2381,5 +2381,5 @@
         pcCU->setDmmDeltaDC( getDmmType( pcCU->getIntraDir( CHANNEL_TYPE_LUMA, absPartIdx ) ), segment, absPartIdx, valDeltaDC );
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
       }
 #endif
@@ -2504,5 +2504,5 @@
 }
 #endif
-#if NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_SDC_INTRA || H_3D_INTER_SDC
 Void TDecSbac::parseSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
 {
Index: /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibDecoder/TDecSbac.h
===================================================================
--- /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibDecoder/TDecSbac.h	(revision 1226)
+++ /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibDecoder/TDecSbac.h	(revision 1227)
@@ -107,5 +107,5 @@
   Void  xReadCoefRemainExGolomb ( UInt &rSymbol, UInt &rParam, const Bool useLimitedPrefixLength, const Int maxLog2TrDynamicRange );
 #endif
-#if NH_3D_DMM || NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC
   Void  xReadExGolombLevelDdc( UInt& ruiSymbol );
   Void  xParseDeltaDC        ( Pel& rValDeltaDC, UInt uiNumSeg );
@@ -116,8 +116,8 @@
   Void  xParseDmm1WedgeIdx   ( UInt& ruiTabIdx, Int iNumBit );
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   Void  xParseSDCResidualData     ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiPart );
 #endif
-#if NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_SDC_INTRA || H_3D_INTER_SDC
   Void  parseSDCFlag         ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
 #endif
@@ -136,5 +136,5 @@
   Void parseDIS          ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
 #endif
-#if NH_3D_DMM || NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC
   Void  parseDeltaDC      ( TComDataCU* pcCU, UInt absPartIdx, UInt depth );
 #endif
@@ -229,8 +229,8 @@
   ContextModel3DBuffer m_cDmmModeSCModel;
 #endif
-#if NH_3D_DMM || NH_3D_INTRA_SDC
+#if NH_3D_DMM || NH_3D_SDC_INTRA
   ContextModel3DBuffer m_cDdcDataSCModel;
 #endif
-#if NH_3D_INTRA_SDC  
+#if NH_3D_SDC_INTRA  
   ContextModel3DBuffer m_cSDCResidualFlagSCModel;
   ContextModel3DBuffer m_cSDCResidualSCModel;
Index: /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncCavlc.cpp
===================================================================
--- /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncCavlc.cpp	(revision 1226)
+++ /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncCavlc.cpp	(revision 1227)
@@ -2843,5 +2843,5 @@
    assert(0);
  }
-#if NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_SDC_INTRA || H_3D_INTER_SDC
 Void TEncCavlc::codeSDCFlag ( TComDataCU* pcCU, UInt uiAbsPartIdx )
 {
Index: /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncCavlc.h
===================================================================
--- /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncCavlc.h	(revision 1226)
+++ /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncCavlc.h	(revision 1227)
@@ -126,5 +126,5 @@
   Void codeMergeFlag     ( TComDataCU* pcCU, UInt uiAbsPartIdx );
   Void codeMergeIndex    ( TComDataCU* pcCU, UInt uiAbsPartIdx );
-#if NH_3D_DMM || NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC
   Void  codeDeltaDC      ( TComDataCU* /*pcCU*/, UInt /*absPartIdx*/ ) { assert(0); };
 #endif
@@ -136,5 +136,5 @@
 #endif
 
-#if NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_SDC_INTRA || H_3D_INTER_SDC
   Void codeSDCFlag       ( TComDataCU* pcCU, UInt uiAbsPartIdx );
 #endif
Index: /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncCu.cpp
===================================================================
--- /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncCu.cpp	(revision 1226)
+++ /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncCu.cpp	(revision 1227)
@@ -1597,5 +1597,5 @@
     if(pcCU->getIPCMFlag(uiAbsPartIdx))
     {
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
       m_pcEntropyCoder->encodeSDCFlag( pcCU, uiAbsPartIdx );
 #endif  
@@ -1612,5 +1612,5 @@
   m_pcEntropyCoder->encodeDBBPFlag( pcCU, uiAbsPartIdx );
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   m_pcEntropyCoder->encodeSDCFlag( pcCU, uiAbsPartIdx );
 #endif  
@@ -2470,5 +2470,5 @@
   rpcTempCU->setDISFlagSubParts(true, 0, uiDepth);
   rpcTempCU->setLumaIntraDirSubParts (DC_IDX, 0, uiDepth);
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   rpcTempCU->setSDCFlagSubParts( false, 0, uiDepth);
 #endif
@@ -2701,5 +2701,5 @@
   }
   
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   if( rpcTempCU->getSDCFlag( 0 ) )
   {
@@ -2725,5 +2725,5 @@
   m_pcEntropyCoder->encodePredInfo( rpcTempCU, 0 );
   m_pcEntropyCoder->encodeIPCMInfo(rpcTempCU, 0, true );
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
     m_pcEntropyCoder->encodeSDCFlag( rpcTempCU, 0, true );
 #endif
@@ -2810,5 +2810,5 @@
   m_pcEntropyCoder->encodePartSize ( rpcTempCU, 0, uiDepth, true );
   m_pcEntropyCoder->encodeIPCMInfo ( rpcTempCU, 0, true );
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   m_pcEntropyCoder->encodeSDCFlag( rpcTempCU, 0, true );
 #endif
Index: /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncEntropy.cpp
===================================================================
--- /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncEntropy.cpp	(revision 1226)
+++ /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncEntropy.cpp	(revision 1227)
@@ -711,5 +711,5 @@
 #endif
 
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   if( pcCU->getSDCFlag( uiAbsPartIdx ) && pcCU->isIntra( uiAbsPartIdx ) )
   {
@@ -730,5 +730,5 @@
   if( pcCU->getSlice()->getIsDepth() )
   {
-#if NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_SDC_INTRA || H_3D_INTER_SDC
     if( pcCU->getSDCFlag( uiAbsPartIdx ) )
     {
@@ -839,5 +839,5 @@
 }
 
-#if NH_3D_DMM || NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC
 Void TEncEntropy::encodeDeltaDC  ( TComDataCU* pcCU, UInt absPartIdx )
 {
@@ -845,5 +845,5 @@
 }
 #endif
-#if NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_SDC_INTRA || H_3D_INTER_SDC
 Void TEncEntropy::encodeSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
 {
Index: /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncEntropy.h
===================================================================
--- /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncEntropy.h	(revision 1226)
+++ /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncEntropy.h	(revision 1227)
@@ -84,5 +84,5 @@
   virtual Void codeMergeFlag     ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
   virtual Void codeMergeIndex    ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
-#if NH_3D_DMM || NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC
   virtual Void codeDeltaDC       ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
 #endif
@@ -93,5 +93,5 @@
   virtual Void codeICFlag        ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
 #endif
-#if NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_SDC_INTRA || H_3D_INTER_SDC
   virtual Void codeSDCFlag       ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
 #endif
@@ -181,8 +181,8 @@
   Void encodeICFlag       ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false );
 #endif
-#if NH_3D_DMM || NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC
   Void encodeDeltaDC      ( TComDataCU* pcCU, UInt absPartIdx );
 #endif
-#if NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_SDC_INTRA || H_3D_INTER_SDC
   Void encodeSDCFlag      ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false );
 #endif
Index: /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncSbac.cpp
===================================================================
--- /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncSbac.cpp	(revision 1226)
+++ /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncSbac.cpp	(revision 1227)
@@ -106,8 +106,8 @@
 , m_cDmmModeSCModel                    ( 1,             1,                      NUM_DMM_MODE_CTX                     , m_contextModels + m_numContextModels, m_numContextModels)
 #endif
-#if NH_3D_DMM || NH_3D_INTRA_SDC
+#if NH_3D_DMM || NH_3D_SDC_INTRA
 , m_cDdcDataSCModel                    ( 1,             1,                      NUM_DDC_DATA_CTX                     , m_contextModels + m_numContextModels, m_numContextModels)
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
 , m_cSDCResidualFlagSCModel            ( 1,             1,                      SDC_NUM_RESIDUAL_FLAG_CTX            , m_contextModels + m_numContextModels, m_numContextModels)
 , m_cSDCResidualSCModel                ( 1,             1,                      SDC_NUM_RESIDUAL_CTX                 , m_contextModels + m_numContextModels, m_numContextModels)
@@ -187,8 +187,8 @@
   m_cDmmModeSCModel.initBuffer                    ( eSliceType, iQp, (UChar*)INIT_DMM_MODE );
 #endif
-#if NH_3D_DMM || NH_3D_INTRA_SDC
+#if NH_3D_DMM || NH_3D_SDC_INTRA
   m_cDdcDataSCModel.initBuffer                    ( eSliceType, iQp, (UChar*)INIT_DDC_DATA );
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   m_cSDCResidualFlagSCModel.initBuffer            ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL_FLAG );
   m_cSDCResidualSCModel.initBuffer                ( eSliceType, iQp, (UChar*)INIT_SDC_RESIDUAL );
@@ -243,5 +243,5 @@
       curCost += m_cCUICFlagSCModel.calcCost                   ( curSliceType, qp, (UChar*)INIT_IC_FLAG );
 #endif                                                     
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
       curCost += m_cSDCFlagSCModel.calcCost                    ( curSliceType, qp, (UChar*)INIT_SDC_FLAG );
 #endif                                                     
@@ -280,5 +280,5 @@
       curCost += m_cDmmModeSCModel.calcCost                    ( curSliceType, qp, (UChar*)INIT_DMM_MODE );
 #endif
-#if NH_3D_DMM || NH_3D_INTRA_SDC
+#if NH_3D_DMM || NH_3D_SDC_INTRA
       curCost += m_cDdcDataSCModel.calcCost                    ( curSliceType, qp, (UChar*)INIT_DDC_DATA );
 #endif
@@ -2473,8 +2473,8 @@
 }
 
-#if NH_3D_DMM || NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC
 Void TEncSbac::codeDeltaDC( TComDataCU* pcCU, UInt absPartIdx )
 {
-#if NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_SDC_INTRA || H_3D_INTER_SDC
   if( !(pcCU->getSDCFlag( absPartIdx )) )
 #endif
@@ -2490,5 +2490,5 @@
 
   UInt hasDeltaDC = 1;
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   if( pcCU->isIntra( absPartIdx ) && pcCU->getSDCFlag( absPartIdx ))
   {
@@ -2512,5 +2512,5 @@
       if( pcCU->isIntra( absPartIdx ) )
       {
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
         if( pcCU->getSDCFlag( absPartIdx ) )
         {
@@ -2523,5 +2523,5 @@
         deltaDC = pcCU->getDmmDeltaDC( getDmmType( pcCU->getIntraDir( CHANNEL_TYPE_LUMA, absPartIdx ) ), segment, absPartIdx );
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
         }
 #endif
@@ -2628,5 +2628,5 @@
 #endif
 
-#if NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_SDC_INTRA || H_3D_INTER_SDC
 Void TEncSbac::codeSDCFlag( TComDataCU* pcCU, UInt uiAbsPartIdx )
 {
Index: /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncSbac.h
===================================================================
--- /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncSbac.h	(revision 1226)
+++ /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncSbac.h	(revision 1227)
@@ -115,5 +115,5 @@
   Void  xWriteEpExGolomb     ( UInt uiSymbol, UInt uiCount );
   Void  xWriteCoefRemainExGolomb ( UInt symbol, UInt &rParam, const Bool useLimitedPrefixLength, const Int maxLog2TrDynamicRange );
-#if NH_3D_DMM || NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC
   Void  xWriteExGolombLevelDdc( UInt uiSymbol );
   Void  xCodeDeltaDC         ( Pel valDeltaDC, UInt uiNumSeg );
@@ -149,8 +149,8 @@
   Void codeICFlag        ( TComDataCU* pcCU, UInt uiAbsPartIdx );
 #endif
-#if NH_3D_DMM || NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_DMM || NH_3D_SDC_INTRA || H_3D_INTER_SDC
   Void  codeDeltaDC      ( TComDataCU* pcCU, UInt absPartIdx );
 #endif
-#if NH_3D_INTRA_SDC || H_3D_INTER_SDC
+#if NH_3D_SDC_INTRA || H_3D_INTER_SDC
   Void codeSDCFlag       ( TComDataCU* pcCU, UInt uiAbsPartIdx );
 #endif
@@ -252,8 +252,8 @@
   ContextModel3DBuffer m_cDmmModeSCModel;
 #endif
-#if NH_3D_DMM || NH_3D_INTRA_SDC
+#if NH_3D_DMM || NH_3D_SDC_INTRA
   ContextModel3DBuffer m_cDdcDataSCModel;
 #endif
-#if NH_3D_INTRA_SDC  
+#if NH_3D_SDC_INTRA  
   ContextModel3DBuffer m_cSDCResidualFlagSCModel;
   ContextModel3DBuffer m_cSDCResidualSCModel;
Index: /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncSearch.cpp
===================================================================
--- /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncSearch.cpp	(revision 1226)
+++ /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncSearch.cpp	(revision 1227)
@@ -1031,5 +1031,5 @@
         if ( pcCU->getIPCMFlag (0))
         {
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
             m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true );
 #endif
@@ -1051,5 +1051,5 @@
       {
         m_pcEntropyCoder->encodeIntraDirModeLuma ( pcCU, 0 );
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
           m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true );
 #if NH_3D_DMM
@@ -1068,17 +1068,5 @@
       {
         m_pcEntropyCoder->encodeIntraDirModeLuma ( pcCU, uiAbsPartIdx );
-#if NH_3D_INTRA_SDC
-          }
-          m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true );
-          for( UInt uiPart = 0; uiPart < 4; uiPart++ )
-          {
-#if NH_3D_DMM
-            if( pcCU->getSlice()->getIsDepth() && ( !pcCU->getSDCFlag( uiPart * uiQNumParts ) ) && isDmmMode( pcCU->getIntraDir( CHANNEL_TYPE_LUMA, uiPart * uiQNumParts ) ) ) 
-            {
-              m_pcEntropyCoder->encodeDeltaDC( pcCU, uiPart * uiQNumParts );
-            }
-#endif
-#endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
           if( uiAbsPartIdx == 0 )  
           {
@@ -1086,5 +1074,5 @@
           }
 #if NH_3D_DMM
-          if( pcCU->getSlice()->getIsDepth() && ( pcCU->getSDCFlag( uiAbsPartIdx ) ) && isDmmMode( pcCU->getIntraDir( CHANNEL_TYPE_LUMA, uiAbsPartIdx ) ) )
+          if( pcCU->getSlice()->getIsDepth() && ( !pcCU->getSDCFlag( uiAbsPartIdx ) ) && isDmmMode( pcCU->getIntraDir( CHANNEL_TYPE_LUMA, uiAbsPartIdx ) ) )
           {
             m_pcEntropyCoder->encodeDeltaDC( pcCU, uiAbsPartIdx );
@@ -1980,5 +1968,5 @@
 }
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
 Void TEncSearch::xIntraCodingSDC( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost, Bool bZeroResidual, Int iSDCDeltaResi  )
 {
@@ -2024,8 +2012,10 @@
 
     //===== init availability pattern =====
-#if !TEMP_SDC_CLEANUP // PM: please migrate together with below "initPattern" and remove macro
-    pcCU->getPattern()->initPattern   ( pcCU, sdcDepth, uiAbsPartIdx );
-    pcCU->getPattern()->initAdiPattern( pcCU, uiAbsPartIdx, sdcDepth, m_piYuvExt, m_iYuvExtStride, m_iYuvExtHeight, bAboveAvail, bLeftAvail );
-#endif
+    TComTURecurse tuRecurseCU(pcCU, 0);
+    TComTURecurse tuRecurseWithPU(tuRecurseCU, false, TComTU::DONT_SPLIT);
+
+    Bool bAboveAvail = false;
+    Bool bLeftAvail  = false;
+    initIntraPatternChType( tuRecurseWithPU, bAboveAvail, bLeftAvail, COMPONENT_Y, false DEBUG_STRING_PASS_INTO(sTemp) );
 
     // get partition
@@ -3257,5 +3247,5 @@
     UInt rdSDC = m_pcEncCfg->getIsDepth() ? numModesForFullRD : 0;
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
     Bool    bBestUseSDC   = false;
     Pel     apBestDCOffsets[2] = {0,0};
@@ -3308,5 +3298,5 @@
       pcCU->setIntraDirSubParts ( CHANNEL_TYPE_LUMA, uiOrgMode, uiPartOffset, uiDepth + uiInitTrDepth );
 
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
 #if H_3D_FAST_INTRA_SDC
       Bool bTestSDC = ( ( m_pcEncCfg->getUseSDC() &&  pcCU->getSlice()->getIntraSdcWedgeFlag() ) && pcCU->getSDCAvailable(uiPartOffset) && uiMode >= numModesForFullRD);
@@ -3355,5 +3345,5 @@
 #if NH_3D_ENC_DEPTH
           UInt zeroResiTest = (pcCU->getSlice()->getIsDepth() && !pcCU->getSlice()->isIRAP()) ? 1 : 0;
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
           zeroResiTest |= pcCU->getSDCFlag(uiPartOffset);
           if( uiSDC != 0 && iSDCDeltaResi != 0 )
@@ -3382,5 +3372,5 @@
       }
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
             if( pcCU->getSDCFlag(uiPartOffset) )
             {
@@ -3421,5 +3411,5 @@
 #endif
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
             }
 #endif
@@ -3442,5 +3432,5 @@
         dBestPUCost   = dPUCost;
 
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
               if( pcCU->getSDCFlag(uiPartOffset) )
               {
@@ -3488,5 +3478,5 @@
           ::memcpy( m_puhQTTempTransformSkipFlag[compID],  pcCU->getTransformSkip(compID)  + uiPartOffset, uiQPartNum * sizeof( UChar ) );
         }
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
         }
 #endif
@@ -3502,5 +3492,5 @@
           }
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
         } // SDC residual loop
       } // SDC loop
@@ -3533,5 +3523,5 @@
 
       pcCU->setIntraDirSubParts ( CHANNEL_TYPE_LUMA, uiOrgMode, uiPartOffset, uiDepth + uiInitTrDepth );
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
       pcCU->setSDCFlagSubParts(false, uiPartOffset, uiDepth + uiInitTrDepth);
 #endif
@@ -3566,5 +3556,5 @@
         uiBestPUDistY = uiPUDistY;
         dBestPUCost   = dPUCost;
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
         bBestUseSDC   = false;
 #endif
@@ -3603,5 +3593,5 @@
     //--- update overall distortion ---
     uiOverallDistY += uiBestPUDistY;
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
     if( bBestUseSDC )
     {
@@ -3625,5 +3615,5 @@
       ::memcpy( pcCU->getCbf( compID  ) + uiPartOffset, m_puhQTTempCbf[compID], uiQPartNum * sizeof( UChar ) );
       ::memcpy( pcCU->getTransformSkip( compID  ) + uiPartOffset, m_puhQTTempTransformSkipFlag[compID ], uiQPartNum * sizeof( UChar ) );
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
     }
 #endif
@@ -3662,5 +3652,5 @@
     //=== update PU data ====
     pcCU->setIntraDirSubParts     ( CHANNEL_TYPE_LUMA, uiBestPUMode, uiPartOffset, uiDepth + uiInitTrDepth );
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
     pcCU->setSDCFlagSubParts          ( bBestUseSDC, uiPartOffset, uiDepth + uiInitTrDepth );
 #endif
@@ -6185,5 +6175,5 @@
 #endif
 
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   Bool bNonSkip = false;
 #else
@@ -7249,5 +7239,5 @@
     m_pcEntropyCoder->encodePartSize( pcCU, 0, pcCU->getDepth(0), true );
     m_pcEntropyCoder->encodePredInfo( pcCU, 0 );
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
     m_pcEntropyCoder->encodeSDCFlag( pcCU, 0, true );
 #endif
@@ -7792,5 +7782,5 @@
 #endif
 #if TEMP_SDC_CLEANUP // PM: consider this cleanup for SDC
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
 Void TEncSearch::xCalcConstantSDC( Pel* ptrSrc, UInt srcStride, UInt uiSize, Pel& valDC )
 {
Index: /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncSearch.h
===================================================================
--- /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncSearch.h	(revision 1226)
+++ /branches/HTM-14.1-update-dev1-RWTH/source/Lib/TLibEncoder/TEncSearch.h	(revision 1227)
@@ -356,9 +356,9 @@
   Void xSearchDmm1Wedge           ( TComDataCU* pcCU, UInt uiAbsPtIdx, Pel* piRef, UInt uiRefStride, UInt uiWidth, UInt uiHeight, UInt& ruiTabIdx );
 #endif
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   Void xIntraCodingSDC            ( TComDataCU* pcCU, UInt uiAbsPartIdx, TComYuv* pcOrgYuv, TComYuv* pcPredYuv, Dist& ruiDist, Double& dRDCost, Bool bZeroResidual, Int iSDCDeltaResi    );
 #endif
 #if TEMP_SDC_CLEANUP // PM: consider this cleanup for SDC
-#if NH_3D_INTRA_SDC
+#if NH_3D_SDC_INTRA
   Void xCalcConstantSDC           ( Pel* ptrSrc, UInt srcStride, UInt uiSize, Pel& valDC );
 #endif
